Maison > Article > interface Web > Comment puis-je préserver le contexte dans les rappels du gestionnaire d'événements en JavaScript ?
Préservation du contexte dans les rappels du gestionnaire d'événements : la technique « self = this »
En JavaScript, les méthodes d'instance en tant que rappels du gestionnaire d'événements peuvent entraîner une portée changements. Comme le démontre le code fourni, les liaisons d'événements nécessitent une variable pour préserver le contexte d'appel, ce qui conduit à l'affectation "var self = this".
Bien que fonctionnelle, cette approche soulève des inquiétudes quant à son efficacité. Une solution plus généralisée résout le problème principal : canaliser les variables dans des fonctions intégrées.
En JavaScript, les fermetures permettent d'accéder aux variables externes. Cependant, les pseudo-variables telles que « this » et « arguments » nécessitent une manipulation prudente. Leur attribution à des alias au sein de la fonction parent garantit leur disponibilité dans les fonctions intégrées.
Exemple
Pour utiliser "this" dans les fonctions intégrées, affectez-le à une variable et utilisez l'alias à la place :
var that = this; function xyz() { // "this" is different here! --- but we don't care! console.log(that); // now it is the right object! function qwe() { // "this" is different here too! --- but we don't care! console.log(that); // it is the right object here too! } ... };
Cette approche ne se limite pas à « ce » ; Les "arguments" nécessitent un traitement similaire pour garantir un accès cohérent dans les fonctions intégrées.
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!