Tach!
Eine herkömmliche anonymous-function-Notation löst das
this
erst zur Laufzeit auf. Wenn du dein Objekt so erstellstlet myObject = { array1: [1, 2, 3], foo: function() { console.log(this.array2); } };
In ES2015 kannst du auch folgendes schreiben:
let myObject = { array1: [1, 2, 3], foo() { console.log(this.array2); } }; myObject.array2 = myObject.array1.map(x => x + 1); myObject.foo()
Ja, das erste ist eine anonyme Funktion, die einer Eigenschaft zugewiesen ist, das andere ist eine benannte Funktion, sprich: Methode. Sieht so aus, als ob das am Ende dasselbe wäre, ist es aber dann noch nicht. Die Methode steht immer zur Verfügung, egal wo im Quelltext sie steht. Die anonyme Funktion in der Eigenschaft kann erst dann verwendet werden, wenn die Codeausführung die Zuweisung durchgeführt hat.
dedlfix.