Maison > interface Web > js tutoriel > Pourquoi utiliser `var that = this;` dans les fonctions JavaScript imbriquées ?

Pourquoi utiliser `var that = this;` dans les fonctions JavaScript imbriquées ?

Linda Hamilton
Libérer: 2024-12-05 05:50:10
original
302 Les gens l'ont consulté

Why Use `var that = this;` in Nested JavaScript Functions?

Accéder à ceci dans les fonctions imbriquées : démêler var that = this;

En JavaScript, comprendre la portée et la valeur de ceci est crucial. Considérez l'extrait de code suivant :

function Somefunction() {
  var that = this;
  ...
}
Copier après la connexion

Pourquoi est-ce déclaré et attribué la valeur de this ?

Pour comprendre le but de cette technique, visualisons un scénario :

var colours = ['red', 'green', 'blue'];
document.getElementById('element').addEventListener('click', function() {
  // this points to the clicked element
  var that = this;

  colours.forEach(function() {
    // this is undefined within this inner function
    // that still refers to the clicked element
  });
});
Copier après la connexion

ceci dans le rappel forEach fait référence à l'élément actuel du tableau, et non à l'élément sur lequel vous avez cliqué. Cependant, cela conserve une référence à l'élément cliqué.

Lorsque vous accédez à des fonctions imbriquées, la portée de celle-ci peut changer, ce qui rend difficile l'accès à la valeur d'origine. Alimenter ceci en cela garantit que la valeur d'origine est toujours accessible.

Notez que l'utiliser comme alias n'est pas toujours optimal. Il est préférable d'utiliser un alias plus descriptif qui indique clairement à quoi il fait référence, notamment dans les fonctions complexes.

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