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

Pourquoi utiliser « var self = this » en JavaScript ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-13 17:56:10747parcourir

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;

  // ...
}

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);
  });
}

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!

Déclaration:
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