Maison >interface Web >js tutoriel >Pourquoi JavaScript bind() est-il requis pour conserver la valeur « cette » dans les rappels asynchrones et les arguments de fonction ?
En JavaScript, le mot-clé this fait référence à l'objet qui possède la fonction en cours d'exécution. Cependant, dans les rappels asynchrones ou lors du passage de fonctions comme arguments à d'autres fonctions, la valeur de this peut être perdue.
Lorsqu'une fonction est appelée comme méthode de un objet (par exemple, object.method()), cela fait correctement référence à l'objet. Cependant, lorsque la fonction est invoquée en tant que fonction autonome (par exemple, method()), la valeur par défaut est l'objet global.
Pour éviter ce problème, bind() vous permet de spécifier manuellement la valeur de ceci lorsque appeler une fonction dans le futur. Il renvoie une nouvelle fonction avec sa valeur this liée à l'objet spécifié.
Dans l'exemple 2, bind() est utilisé pour créer une nouvelle fonction (storeMyName2) qui a c'est cette référence liée à myName. Cela garantit que lorsque la nouvelle fonction est appelée, elle fera référence à myName, quelle que soit la façon dont elle est appelée.
Dans l'exemple 3, storeMyName3 est défini sur le résultat de appelant directement myName.getName(). Cela signifie que storeMyName3 contient la valeur renvoyée, qui est simplement la chaîne « Tom ». Ce n'est pas une fonction comme storeMyName et storeMyName2, donc cela n'implique pas le concept de ceci.
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!