Quand ceci argumente : Comprendre « ceci » dans les fonctions de rappel
En JavaScript, la valeur de this dans un appel de fonction est déterminée par le contexte dans lequel la fonction est exécutée. Cependant, lorsque vous passez ceci en argument, les règles peuvent devenir compliquées.
Plus précisément, le scénario suivant se produit : lorsqu'une fonction de rappel est passée en argument, pourquoi n'est-elle pas définie sur la fonction qui appelle le rappel ?
Comprendre la hiérarchie de « ceci »
Pour comprendre pourquoi ceci est défini là où il se trouve, nous devons considérer la hiérarchie de appels de fonction :
Cependant, avant que randomFunction n'appelle le rappel, il utilise this.sumData.bind(this) pour créer une nouvelle fonction (règle n°5). Cette nouvelle fonction appelle la fonction de rappel d'origine, mais maintenant avec celle-ci liée à obj (l'argument passé à bind).
Implications pour les fonctions de rappel
Lors du passage d'une méthode en guise de rappel, il est crucial de comprendre qu'il ne sera pas appelé obj.method(). Cela signifie que this n'aura pas la valeur correcte dans la fonction de rappel. Pour contourner ce problème, vous pouvez utiliser bind() pour définir la valeur de this dans le rappel.
Autres notes utiles
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3