我相信(可能是我錯了)ECMA6中的方法定義使用箭頭函數(內部)並且必須保留「this」(上下文)。 但上下文「this」不保留在對象方法
class Foo {
methodOne() {
console.log("MethodOne is called")
}
methodTwo() {
console.log("MethodTwo is called");
this.methodOne();
}
}
var foo = new Foo();
var executing = function (someMethod) {someMethod()};
executing(foo.methodTwo)
它會引發錯誤「遺漏的類型錯誤:無法讀取的未定義的屬性‘methodOne’(......)」
所以,無論是我的理解規格不正確或瀏覽器(Chrome,FF)和的NodeJS不支持這個呢?
在規範它在哪裏這樣說_「使用箭頭功能(內部)」 _或_「‘本’(上下文)必須保持」 _?爲什麼它應該隨ES6而改變? – zeroflagL
箭頭函數和方法定義是兩個不同的東西。 –