Maison > interface Web > js tutoriel > Pourquoi utiliser « var self = this » en JavaScript ?

Pourquoi utiliser « var self = this » en JavaScript ?

Patricia Arquette
Libérer: 2024-12-13 17:56:10
original
777 Les gens l'ont consulté

Why Use `var self = this` in JavaScript?

Comprendre l'idiome JavaScript : var self = this

En JavaScript, vous pouvez rencontrer l'idiome 'var self = this' dans certains scénarios . Pour comprendre son objectif, considérons l'exemple de la démo WebKit HTML 5 SQL Storage Notes :

function Note() {
  var self = this;

  // ...
}
Copier après la connexion

Maintaining Context

Dans cet exemple, 'self' est utilisé pour conserver une référence au contexte d'origine « ce », même lorsque le contexte change dans les fonctions imbriquées. Les gestionnaires d'événements emploient souvent cette technique, en particulier dans les fermetures.

En attribuant « this » à « self », lorsque les fonctions internes sont appelées, elles peuvent toujours accéder au contexte « this » d'origine, ce qui est crucial pour accéder à l'instance. propriétés et méthodes.

Nom alternatif

Il convient de noter que le nom « soi » n'est qu'une convention. Les noms alternatifs comme « ça » sont également valables. La clé est d'établir une variable qui conserve la référence "this" d'origine.

Portée de la fonction

Les fonctions déclarées dans un contexte peuvent accéder aux variables et aux fonctions définies dans cette portée. ou dans des portées extérieures. Ce principe s'applique également aux fonctions imbriquées et aux fermetures.

Exemple

Considérez le rappel d'événement suivant :

function MyConstructor(options) {
  let that = this;

  // ...

  document.addEventListener('click', (event) => {
    alert(that.someprop);
  });
}
Copier après la connexion

Dans cet exemple, ' cela' préserve le contexte de 'MyConstructor'. Le gestionnaire d'événements click peut désormais accéder à la propriété d'instance 'someprop' de l'objet créé avec 'MyConstructor'.

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