0
我已经阅读了箭头功能的一些主题,但下面的代码只是让我困惑。ES6箭头功能和这个上下文
var bunny = {
name: 'Usagi',
tasks: ['transform', 'eat cake', 'blow kisses'],
first :() => {
console.log(this) //does not refer to bunny
},
second: function(){
console.log(this) //refers to bunny
},
third() {
this.tasks.forEach((task) => {
console.log(this); //refers to bunny
});
}
};
bunny.first();
bunny.second();
bunny.third();
有谁能告诉我第三个函数的内部函数是如何引用当前对象,而第一个函数没有。 当我们使用箭头函数的时候,这是不是指当前作用域被定义的地方?
箭头函数没有在自己的词法范围中定义'this',所以它从外部范围中获取它,就像它会得到一个未定义的正常变量一样。 – 2016-09-27 22:48:30
对象文字属性表达式中的当前'this'上下文不是构造对象。 – Bergi
请参阅[箭头函数与函数声明/表达式:它们是等价的还是可交换的?](http://stackoverflow.com/q/34361379/218196) –