Heim > Web-Frontend > js-Tutorial > Wie gehen ES6-Pfeilfunktionen mit dem Schlüsselwort „this' um?

Wie gehen ES6-Pfeilfunktionen mit dem Schlüsselwort „this' um?

Linda Hamilton
Freigeben: 2024-12-27 20:48:14
Original
170 Leute haben es durchsucht

How Do ES6 Arrow Functions Handle the

Pfeilfunktionen und die lexikalische Bindung von „this“ in ES6

Eines der charakteristischen Merkmale von Pfeilfunktionen in ES6 ist ihre einzigartige Handhabung des Schlüsselworts „this“. Im Gegensatz zu regulären Funktionen, die „dies“ dynamisch an den Aufrufkontext der Funktion binden, binden Pfeilfunktionen „dies“ lexikalisch an den umschließenden lexikalischen Bereich.

Das bedeutet, dass „dies“ innerhalb einer Pfeilfunktion immer auf das Objekt verweist das die Pfeilfunktionsdefinition enthält. Zum Beispiel:

var testFunction = () => {
  console.log(this);
};

testFunction();
Nach dem Login kopieren

In diesem Code bezieht sich „this“ in der Pfeilfunktion nicht auf die Fettpfeilfunktion selbst, wie Sie vermutet haben. Stattdessen bezieht es sich auf das Objekt, das die Pfeilfunktionsdefinition enthält. Da die Pfeilfunktion im globalen Bereich definiert ist, hat „this“ einen globalen Kontext. Daher ist die Ausgabe des Codes das globale Objekt.

Die lexikalische Bindung ist in Situationen von Vorteil, in denen sich der Wert von „this“ während der Funktionsausführung wahrscheinlich ändert. Betrachten Sie zum Beispiel das folgende Beispiel:

function Person() {
  this.age = 0;

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

var p = new Person();
Nach dem Login kopieren

In diesem Beispiel erfasst die Pfeilfunktion den „this“-Wert des umschließenden Person-Objekts. Dadurch wird sichergestellt, dass die Inkrementierungsoperation immer auf der richtigen Personeninstanz ausgeführt wird, auch wenn der setTimeout-Rückruf asynchron aufgerufen wird und sich der Ausführungskontext geändert hat.

Zusammenfassend lässt sich sagen, dass Pfeilfunktionen in ES6 „this“ lexikalisch an die binden umschließenden lexikalischen Bereich. Dadurch kann „this“ unabhängig vom Aufrufkontext der Funktion auf dasselbe Objekt verweisen, was die Handhabung von „this“ in asynchronen oder verschachtelten Funktionsszenarien erleichtert.

Das obige ist der detaillierte Inhalt vonWie gehen ES6-Pfeilfunktionen mit dem Schlüsselwort „this' um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage