0
在以下代碼中,在obj1的對象字面量中,我假設這兩個函數中的'this'都會引用obj1,但是在胖箭頭功能,它沒有。有人能解釋爲什麼嗎?我會假定這些函數要麼是等價的,要麼是在胖箭頭函數中,'this'將在詞彙上定義爲obj1。'this'在對象文字中的箭頭函數vs非箭頭函數中
var obj1 = {
name : 'name1',
standardFunction : function() {
console.log(this.name); // Refers to obj1
},
fatArrowFunction :() => { // Refers to the global object
console.log(this.name);
}
}
obj1.standardFunction();
obj1.fatArrowFunction();
這個* *是*從詞法上解決的。即它指的是定義了obj1的環境的'this'的值。而在那裏,'this'不是指'obj1'。 –