【问题标题】:Javascript "This" differences in arrow functions [duplicate]箭头函数中的Javascript“This”差异[重复]
【发布时间】:2018-05-08 12:18:49
【问题描述】:

这里有两个简单的代码:

let myObject = {
objectName: () => {
    console.log(this);
}
};

myObject.objectName(); 

第一个代码将“this”值打印为:{ }

let myObject = {
objectName: function() {
    console.log(this);
}
};

myObject.objectName();

第二个代码将“this”值打印为:{ objectName: [Function: objectName] }

有人可以用简单的英语解释为什么箭头函数中的“this”具有不同的值吗? 谢谢!

【问题讨论】:

标签: javascript this arrow-functions


【解决方案1】:

箭头函数表达式的语法比函数表达式短,并且没有自己的 thisargumentssupernew.target。使用封闭执行contextthis 值。

如果您不使用箭头函数,函数会从调用它的位置获取其this 值。

查看此处了解更多详情

How does event handlers with arrow functions achieve context binding

【讨论】: