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

Pourquoi JavaScript bind() est-il essentiel pour contrôler « ce » dans les fonctions ?

Mary-Kate Olsen
Libérer: 2024-10-24 13:32:02
original
768 Les gens l'ont consulté

Why is JavaScript bind() Essential for Controlling

Pourquoi JavaScript bind() est-il nécessaire ?

En JavaScript, « ceci » fait référence à l'objet qui possède le code en cours d'exécution. Cependant, lorsque les fonctions sont transmises en tant que rappels ou gestionnaires d'événements, l'environnement appelant peut différer de celui prévu. Cela conduit au problème de "ceci" faisant référence à l'objet global au lieu de l'objet prévu.

Résoudre le problème avec Bind

La méthode bind() de JavaScript vous permet pour définir explicitement la valeur de "this" dans une fonction. En liant une fonction à un objet spécifique, vous vous assurez que lorsque la fonction est appelée, "this" fera référence à cet objet.

Exemple :

<code class="js">var myName = {
  name: "Tom",
  getName: function() {
    return this.name;
  }
};

var storeMyName2 = myName.getName.bind(myName);
console.log(storeMyName2()); // Output: "Tom" (correct)</code>
Copier après la connexion

En liant getName() à myName, la référence à « this » est conservée et la fonction renvoie correctement « Tom ».

Solution alternative : exemple 3

Dans exemple 3, storeMyName3 reçoit immédiatement le résultat de l'appel de myName.getName(). Cela signifie que la valeur de storeMyName3 est une chaîne et non une fonction. Ainsi, il n'y a aucun problème avec la valeur de "this" car la valeur est déterminée au moment de l'exécution, pas lorsque la fonction est appelée.

Comparaison de Bind() et de l'exemple 3

Bind() et l'exemple 3 atteignent le même objectif, mais via des mécanismes différents. Bind() vous permet de définir le contexte d'une fonction sans l'invoquer immédiatement, tandis que l'exemple 3 définit le contexte en appelant la fonction et en stockant le résultat.

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!

source:php
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
Derniers articles par auteur
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!