Maison > interface Web > js tutoriel > Comment conserver la référence « ce » dans les fonctions de prototype JavaScript ?

Comment conserver la référence « ce » dans les fonctions de prototype JavaScript ?

Susan Sarandon
Libérer: 2024-11-04 03:33:02
original
292 Les gens l'ont consulté

How to Preserve the 'this' Reference in JavaScript Prototype Functions?

Comment conserver la référence « ceci » dans les fonctions prototypes JavaScript

En JavaScript, conserver la référence à « ceci » dans les fonctions prototypes peut être difficile lorsque la portée change. Pour résoudre ce problème, envisagez les solutions suivantes :

Utilisation de la méthode Bind

La méthode bind vous permet de créer une nouvelle fonction qui préserve la référence 'this' à l'objet d'origine. Utilisation :

function.bind(object, argument1, argument2, ...);
Copier après la connexion

Par exemple :

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

Cela garantit que « ceci » fait référence à l'instance MyClass lorsque l'événement de clic est déclenché.

Création d'une référence à « ceci »

Vous pouvez également créer une référence à « ceci » dans le prototype function :

MyClass.prototype.myfunc = function() {
  var myThis = this;
  ...
};
Copier après la connexion

Cela vous permet d'accéder à « this.myValue » dans les fonctions imbriquées. Cependant, vous devrez peut-être créer ces références pour chaque fonction prototype, ce qui peut s'avérer fastidieux.

Utilisation des fonctions fléchées

Les fonctions fléchées héritent de la valeur 'this' du contexte environnant, ce qui peut simplifier le code :

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

Éviter Global Variables

Évitez d'utiliser des variables globales pour contenir la référence 'this', car cela pollue l'espace de noms global et peut entraîner des conflits lorsque plusieurs objets MyClass existent.

Exemple avec jQuery Each

Pour travailler avec la méthode each de jQuery, vous pouvez utiliser la méthode bind pour conserver le 'this' référence :

MyClass.prototype.doSomething = function() {
  this.elements.each(this.doSomething.bind(this));
};
Copier après la connexion

Conclusion

Bien que l'utilisation de modèles de prototypes soit généralement considérée comme une bonne pratique, comprendre comment maintenir la bonne référence « this » est essentiel pour préserver l'état de l'objet et le comportement. La méthode de liaison et d'autres techniques peuvent apporter des solutions efficaces à ce défi.

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