簡體   English   中英

Javascript箭頭功能無法正常工作?

[英]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()中的athis等於a 但在第二種情況下,調用它的方式並不重要, this可能與窗口對象相同(除非在其他函數中創建了letter )。 window.number未定義。

箭頭函數沒有自己的this值。 this指的是封閉的背景。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM