Maison > interface Web > js tutoriel > le corps du texte

Implémentation et utilisation de bind en JS

PHPz
Libérer: 2024-02-24 13:33:05
original
1152 Les gens l'ont consulté

Implémentation et utilisation de bind en JS

Implémentation et utilisation de bind en JS

En JavaScript, bind est une méthode de fonction très utile. Il peut créer une nouvelle fonction, tout en garantissant que lorsque la fonction est appelée, elle a une valeur this spécifique et peut transmettre les paramètres spécifiés.

La méthode bind est définie comme suit :

function bind(fn, obj, ...args) {
  return function(...args2) {
    return fn.apply(obj, [...args, ...args2]);
  };
}
Copier après la connexion

La méthode bind ci-dessus reçoit trois paramètres : fn, obj et args. fn est la fonction qui doit être liée à cette valeur, obj est l'objet vers lequel elle pointe lorsque la fonction est appelée et args est les paramètres transmis à la fonction fn.

Ensuite, regardons un exemple spécifique pour comprendre l'utilisation de bind.

const person = {
  firstName: 'John',
  lastName: 'Doe',
  getFullName: function() {
    return this.firstName + ' ' + this.lastName;
  }
};

const printFullName = function() {
  console.log(this.getFullName());
};

const logFullName = printFullName.bind(person);

logFullName(); 
Copier après la connexion

Dans le code ci-dessus, nous créons un objet personne, qui contient une méthode getFullName, qui renvoie le nom complet de la personne. Ensuite, nous définissons une fonction normale printFullName, qui affichera le nom complet de l'appelant.

Cependant, puisque la fonction printFullName est définie dans la portée globale, lorsque nous appelons directement printFullName, cela pointera vers l'objet global (objet fenêtre dans le navigateur), pas l'objet personne.

Afin de résoudre ce problème, nous utilisons la méthode bind pour lier la fonction printFullName à l'objet personne, de sorte que lorsque la fonction logFullName est appelée, elle pointe vers l'objet personne, imprimant ainsi correctement le nom complet.

La méthode bind peut recevoir des paramètres supplémentaires et les transmettre à la fonction d'origine. Par exemple, nous pouvons modifier la fonction logFullName pour accepter un paramètre de nom et le transmettre à la méthode getFullName.

const person = {
  firstName: 'John',
  lastName: 'Doe',
  getFullName: function(name) {
    return this.firstName + ' ' + this.lastName + ' is ' + name;
  }
};

const printFullName = function(name) {
  console.log(this.getFullName(name));
};

const logFullName = printFullName.bind(person, 'great');

logFullName(); 
Copier après la connexion

Dans le code ci-dessus, nous avons passé un paramètre de nom 'great' dans la méthode bind. Lorsque la fonction logFullName est appelée, ce paramètre sera passé à la méthode getFullName, affichant ainsi "John Doe is great".

Pour résumer, la méthode bind est une méthode de fonction très utile. Elle peut être utilisée pour créer une nouvelle fonction et garantir que cette fonction a une valeur this spécifique lorsqu'elle est appelée et peut transmettre les paramètres spécifiés. En utilisant correctement la méthode bind, nous pouvons éviter le problème signalé par celle-ci et transmettre de manière flexible les paramètres à la fonction d'origine.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!