Heim  >  Artikel  >  Web-Frontend  >  Pfeilfunktion und so

Pfeilfunktion und so

PHPz
PHPzOriginal
2024-07-31 01:28:24846Durchsuche

Arrow function and this

Was wäre das Ergebnis dieses foo.baz()??

const foo = {
  bar: 10,
  baz: () => console.log(this.bar),
};


foo.baz();

Diese Funktion scheint zu funktionieren, aber wenn Sie sie ausführen, ist das Ergebnis „undefiniert“. Warum so?
Wenn Sie in JavaScript eine Pfeilfunktion verwenden, sucht die Funktion console.log(this.bar) nach einer globalen Variablen, da das Schlüsselwort „this“ nicht an das umgebende Objekt, sondern an ein globales Objekt (Fenster) im Browser oder gebunden ist node.js-Umgebung.
Um dieses Problem zu beheben, verwenden wir entweder foo.bar oder ändern einen Code ein wenig und verwenden etwa einen regulären Funktionsausdruck

 baz: function () {
    console.log(this.bar);
  },

Oder wenn wir eine Pfeilfunktion verwenden müssen, können wir, anstatt eine lokale Variable wie this.bar aufzurufen, den Objektnamen verwenden und foo.bar wie folgt aufrufen.

 baz: () => console.log(foo.bar),

Jetzt wird die Ausgabe korrekt 10 sein.

Das obige ist der detaillierte Inhalt vonPfeilfunktion und so. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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