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

Comment pouvez-vous préserver le contexte de « ceci » dans les fonctions prototypes JavaScript ?

Susan Sarandon
Libérer: 2024-11-11 10:24:02
original
940 Les gens l'ont consulté

How can you preserve the context of

Préserver le contexte de « ceci » dans les fonctions prototypes JavaScript

Problème :

Dans JavaScript prototypique, lors de la définition de fonctions au sein d'un prototype, la portée change et la valeur de "this" peut ne plus faire référence à l'instance de la classe. Cela peut rendre difficile l'accès aux propriétés et aux méthodes de l'objet d'origine.

Solution : Utilisation de la méthode bind()

La méthode bind() permet aux développeurs de préserver le contexte de « ceci » dans les fonctions prototypes. Il renvoie une nouvelle fonction avec le contexte spécifié lié comme premier argument, tandis que les arguments restants sont transmis à la fonction d'origine.

MyClass.prototype.myfunc = function() {
  this.element.click((function() {
    // ...
  }).bind(this));
};
Copier après la connexion

Dans cet exemple, la méthode bind() est utilisée pour préserver le contexte. de "this" dans la fonction anonyme attribuée au gestionnaire d'événements de clic.

Exemple avec plusieurs prototypes Fonctions :

L'utilisation de bind() élimine le besoin de stocker explicitement une référence à « ceci » dans chaque fonction prototype. Par exemple :

MyClass.prototype.doSomething = function() {
  // operate on the element
}.bind(this);
Copier après la connexion

En utilisant bind() dans la définition de doSomething, le contexte de "this" est automatiquement préservé pour toutes les instances de la classe.

Éviter Global Variables :

L'utilisation d'une variable globale pour contenir une référence à "this" n'est pas recommandée car elle pollue l'espace de noms global et empêche plusieurs instances de la classe ne peuvent pas être créées sans interférer les unes avec les autres. La méthode bind() offre une solution plus efficace et plus propre.

Conclusion

La méthode bind() fournit un moyen puissant de préserver le contexte de « ceci » dans fonctions de prototype, éliminant ainsi le besoin de référencement manuel et de variables globales. Cette approche améliore la lisibilité, la maintenabilité et la flexibilité du code dans les applications JavaScript prototypes.

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