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

Comment \'this\' se comporte-t-il dans les fonctions de rappel JavaScript ?

DDD
Libérer: 2024-11-03 22:34:03
original
800 Les gens l'ont consulté

How does 'this' behave in JavaScript Callback Functions?

Comprendre « ceci » dans les fonctions de rappel JavaScript

En JavaScript, la valeur de « ceci » dans une fonction est déterminée par la façon dont la fonction est invoqué. Lorsqu'une fonction est passée en argument à une autre fonction, la valeur de « this » dans la fonction de rappel peut être contrôlée à l'aide de diverses méthodes.

Comportement par défaut

Généralement , dans une fonction de rappel, 'this' est défini par défaut sur l'objet global ou non défini (en mode strict). En effet, la fonction de rappel n'est pas techniquement invoquée en tant que méthode d'un objet spécifique.

Définir 'this' avec .bind()

Cependant, le .bind () peut être utilisée pour lier une valeur spécifique à « this » lorsque la fonction de rappel est invoquée. La méthode .bind() crée une nouvelle fonction qui définira toujours « this » sur la valeur passée comme argument à .bind().

Exemple : utilisation de .bind()

Dans votre exemple :

randomFunction(this.sumData.bind(this))
Copier après la connexion

La méthode .bind() est utilisée pour créer une nouvelle fonction qui lie « ceci » à l'objet obj. Ainsi, lorsque la fonction de rappel (this.sumData) est invoquée par randomFunction, 'this' sera défini sur obj, ce à quoi vous vous attendiez.

Comparaison avec l'invocation de méthode directe

En revanche, l'utilisation de l'invocation directe de la méthode this.sumData() dans randomFunction définirait 'this' sur l'objet global ou non défini car la fonction serait appelée comme une fonction régulière et non comme une méthode de l'objet obj.

Fonctions fléchées dans ES6

Dans ES6, les fonctions fléchées ont un comportement différent concernant « ceci ». Ils conservent la valeur lexicale de « ceci » à partir de l'environnement dans lequel ils sont définis. Cela signifie que quelle que soit la façon dont la fonction flèche est appelée, « ceci » fera toujours référence au même objet. Cela peut être utile dans certains scénarios, mais il est important d'être conscient de ce comportement.

Conclusion

En fin de compte, la valeur de « ceci » dans une fonction de rappel est déterminé par la manière dont la fonction est invoquée. En comprenant les différentes manières de contrôler « ce », vous pouvez transmettre et manipuler efficacement des données dans les rappels JavaScript.

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.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