![](/img/trans.png)
[英]javascript: onclick=“scrollWin()” doesn't work as intended
[英]Javascript arrow function doesn't work as intended?
以下代碼按預期工作:
let letter = {
getNum() {
return this.number;
}
};
let a = {number:20, __proto__:letter};
console.log(a.getNum()); // 20
但如果將getNum
更改為箭頭功能:
let letter = {
getNum: () => this.number
};
a.getNum()
返回undefined
,為什么?
對於正則函數,的值this
是(通常)被調用時,他們確定。
對於箭頭功能的值this
在定義時被確定。
所以對於第一種情況,由於a.getNum()
中的a
, this
等於a
。 但在第二種情況下,調用它的方式並不重要, this
可能與窗口對象相同(除非在其他函數中創建了letter
)。 window.number
未定義。
箭頭函數沒有自己的this
值。 this
指的是封閉的背景。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.