Heim > Web-Frontend > js-Tutorial > Wie verhält sich das Schlüsselwort „dieses' in ES6-Pfeilfunktionen anders als bei herkömmlichen Funktionen?

Wie verhält sich das Schlüsselwort „dieses' in ES6-Pfeilfunktionen anders als bei herkömmlichen Funktionen?

Mary-Kate Olsen
Freigeben: 2024-12-21 06:45:11
Original
159 Leute haben es durchsucht

How Does `this` Keyword Behave Differently in ES6 Arrow Functions Compared to Traditional Functions?

Pfeilfunktionen und dies

In ES6 bieten Pfeilfunktionen eine prägnante Syntax zum Definieren von Funktionen. Ihr Verhalten unterscheidet sich jedoch von herkömmlichen Funktionen in der Art und Weise, wie sie mit dem Schlüsselwort this umgehen.

Beachten Sie den folgenden Code:

var person = {
  name: "jason",
  shout: () => console.log("my name is ", this.name) // Error: This is unbound
};

person.shout();
Nach dem Login kopieren

Hier besteht die Absicht darin, „Mein Name ist Jason“ zu protokollieren, wenn person.shout() wird aufgerufen. Die Ausgabe lautet jedoch „Mein Name ist undefiniert“. Dies liegt daran, dass Pfeilfunktionen keine eigene Bindung haben. Stattdessen erben sie diesen Wert vom umschließenden Bereich.

In diesem Fall ist der umschließende Bereich der globale Bereich, wobei sich dieser auf das Fensterobjekt bezieht. Da das Fensterobjekt keine Namenseigenschaft hat, wird der Ausdruck this.name als undefiniert ausgewertet.

Um dieses Problem zu beheben, können Sie die Tatsache nutzen, dass Pfeilfunktionen dies nicht binden. Indem Sie die Pfeilfunktion direkt in das Objektliteral einfügen, können Sie den korrekten Wert this vom Objekt erben:

var person = {
  name: "jason",
  shout: function() {
    console.log("my name is ", this.name)
  }
};

person.shout(); // Output: my name is jason
Nach dem Login kopieren

Alternativ können Sie eine ES6-Methodendeklaration ohne das Funktionsschlüsselwort und die Syntax :

var person = {
  name: "jason",
  shout() {
    console.log("my name is ", this.name)
  }
};

person.shout(); // Output: my name is jason
Nach dem Login kopieren
Durch die Verwendung dieser Techniken können Sie dies innerhalb von Pfeilfunktionen effektiv nutzen und die gewünschte Ausgabe erzielen.

Das obige ist der detaillierte Inhalt vonWie verhält sich das Schlüsselwort „dieses' in ES6-Pfeilfunktionen anders als bei herkömmlichen Funktionen?. 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