Lexikalische Bindung von „this“ in ES6-Pfeilfunktionen
Pfeilfunktionen in ES6 sind bekannt für ihr einzigartiges lexikalisches Bindungsverhalten von „this“. " Im Gegensatz zu anderen JavaScript-Funktionen, bei denen „this“ dynamisch gebunden ist, behalten Pfeilfunktionen einen lexikalischen Bereich bei und weisen „this“ demselben Wert wie den umschließenden Kontext zu.
Um dieses Konzept zu veranschaulichen, betrachten Sie den folgenden Code:
var testFunction = () => { console.log(this) }; testFunction();
Im Gegensatz zum herkömmlichen JavaScript-Verhalten, bei dem sich „this“ auf das globale Objekt (Fenster) bezieht, erfassen Pfeilfunktionen den „this“-Wert des umschließenden Kontexts. In diesem Beispiel würde sich „this“ auf den globalen Bereich (Fenster) beziehen, da testFunction außerhalb jedes Objekts definiert ist.
Darüber hinaus stellt die lexikalische Bindung sicher, dass „this“ während der gesamten Lebensdauer der Pfeilfunktion konsistent bleibt. Betrachten Sie das folgende Beispiel:
function Person(){ this.age = 0; setInterval(() => { this.age++; // |this| properly refers to the person object }, 1000); } var p = new Person();
Hier erfasst die Pfeilfunktion den „this“-Wert des Person-Objekts und ermöglicht ihm den Zugriff und die Änderung seiner Eigenschaften (in diesem Fall die Erhöhung der Alterseigenschaft). Dieses Verhalten stellt sicher, dass sich „dies“ immer auf den richtigen Kontext bezieht, unabhängig davon, wie die Pfeilfunktion aufgerufen wird oder sich der Ausführungskontext ändert.
Das obige ist der detaillierte Inhalt vonWie wirkt sich die lexikalische Bindung auf das Schlüsselwort „this' in ES6-Pfeilfunktionen aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!