箭头函数中的'this'与对象文本中的非箭头函数



在下面的代码中,在obj1的对象文字中,我假设两个函数中的"this"都引用obj1,但在胖箭头函数中,它没有。有人能解释一下原因吗?我假设这些函数是等价的,或者在胖箭头函数中,"this"在词汇上定义为obj1。

var obj1 = {
name : 'name1',
standardFunction : function() {
console.log(this.name);        //  Refers to obj1
},
fatArrowFunction : () => {       //  Refers to the global object
console.log(this.name);        
}
}
obj1.standardFunction();
obj1.fatArrowFunction();

根据定义,箭头函数的行为与传统函数不同。用() => {}语法定义的函数从外部作用域继承上下文。

最新更新