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!