Javascript"这个"箭头功能的差异

时间:2018-05-08 12:18:50

标签: javascript this arrow-functions

这里有两个简单的代码:

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

myObject.objectName(); 

第一个代码打印"这个"值为:{}

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

myObject.objectName();

第二个代码打印"这个"值为:{objectName:[Function:objectName]}

有人可以用简单的英语解释为什么"这个"在箭头功能有不同的价值? 谢谢!

1 个答案:

答案 0 :(得分:0)

箭头函数表达式的语法短于函数表达式,并且没有自己的thisargumentssupernew.target。使用了封闭执行this的{​​{1}}值。

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

查看此内容以获取更多详情

How does event handlers with arrow functions achieve context binding