繁体   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