0
我已經閱讀了箭頭功能的一些主題,但下面的代碼只是讓我困惑。ES6箭頭功能和這個上下文
var bunny = {
name: 'Usagi',
tasks: ['transform', 'eat cake', 'blow kisses'],
first :() => {
console.log(this) //does not refer to bunny
},
second: function(){
console.log(this) //refers to bunny
},
third() {
this.tasks.forEach((task) => {
console.log(this); //refers to bunny
});
}
};
bunny.first();
bunny.second();
bunny.third();
有誰能告訴我第三個函數的內部函數是如何引用當前對象,而第一個函數沒有。 當我們使用箭頭函數的時候,這是不是指當前作用域被定義的地方?
箭頭函數沒有在自己的詞法範圍中定義'this',所以它從外部範圍中獲取它,就像它會得到一個未定義的正常變量一樣。 – 2016-09-27 22:48:30
對象文字屬性表達式中的當前'this'上下文不是構造對象。 – Bergi
請參閱[箭頭函數與函數聲明/表達式:它們是等價的還是可交換的?](http://stackoverflow.com/q/34361379/218196) –