![](/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.