In ES6, beide von ihnen sind legal:Methods in ES6 Objekte: mit Pfeilfunktionen
var chopper = {
owner: 'Zed',
getOwner: function() { return this.owner; }
};
und als Kürzel:
var chopper = {
owner: 'Zed',
getOwner() { return this.owner; }
}
Ist es möglich, die neuen Pfeilfunktionen sowie die Verwendung ? so etwas wie
var chopper = {
owner: 'John',
getOwner: => { return this.owner; }
};
oder
var chopper = {
owner: 'John',
getOwner: => (this.owner)
};
Ich erhalte eine Fehlermeldung darauf hindeutet, dass das Verfahren keinen Zugang zu this
versuchen. Ist das nur ein Syntaxproblem, oder können Sie keine Fat-Pipe-Methoden in ES6-Objekten verwenden?
Einer der größten Punkte der neuen Funktion Syntax war, dass es 'behandelt this' anders. Es wird durch die lexikalische Umgebung definiert, in der die Funktion erstellt wurde, was bedeutet, dass der "this" -Wert, in dem Sie die "chopper" -Variable erstellen, der "this" -Wert der Funktion ist. Mit anderen Worten, es wird nicht auf das "Zerhacker" -Objekt Bezug genommen. –
habe ich es, gibt es eine Möglichkeit, diese Funktion neu zu schreiben, so dass es sich auf "Besitzer" im Chopper bezieht? – fox
Bei Verwendung der Fettpfeilsyntax? Nur wenn Sie den 'this'-Wert ändern, indem Sie zuerst das' chopper'-Objekt erstellen, dann führen Sie die Zuweisung in einer Funktion durch, die 'this' auf dieses Objekt zeigt. Dies kann ziemlich sauber mit einer Konstruktorfunktion erreicht werden. –