Maison > interface Web > js tutoriel > Comment la liaison lexicale affecte-t-elle le mot-clé « this » dans les fonctions fléchées ES6 ?

Comment la liaison lexicale affecte-t-elle le mot-clé « this » dans les fonctions fléchées ES6 ?

Barbara Streisand
Libérer: 2024-12-18 15:27:12
original
430 Les gens l'ont consulté

How Does Lexical Binding Affect the

Liaison lexicale de « ceci » dans les fonctions fléchées ES6

Les fonctions fléchées dans ES6 sont réputées pour leur comportement de liaison lexicale unique de « ceci ». " Contrairement à d'autres fonctions JavaScript où « this » est lié dynamiquement, les fonctions fléchées conservent une portée lexicale, attribuant « this » à la même valeur que son contexte englobant.

Pour illustrer ce concept, considérons le code suivant :

var testFunction = () => {
  console.log(this)
};
testFunction();
Copier après la connexion

Contrairement au comportement JavaScript traditionnel où « ceci » ferait référence à l'objet global (fenêtre), les fonctions fléchées capturent la valeur « ceci » du contexte englobant. Dans cet exemple, "this" ferait référence à la portée globale (fenêtre) puisque testFunction est défini en dehors de tout objet.

De plus, la liaison lexicale garantit que "this" reste cohérent tout au long de la durée de vie de la fonction flèche. Prenons l'exemple suivant :

function Person(){
  this.age = 0;

  setInterval(() => {
    this.age++; // |this| properly refers to the person object
  }, 1000);
}

var p = new Person();
Copier après la connexion

Ici, la fonction flèche capture la valeur "this" de l'objet Person, lui permettant d'accéder et de modifier ses propriétés (dans ce cas, en incrémentant la propriété age). Ce comportement garantit que « ceci » fait toujours référence au contexte correct, quelle que soit la façon dont la fonction fléchée est appelée ou le contexte d'exécution change.

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