在下面的代码中,在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();
根据定义,箭头函数的行为与传统函数不同。用() => {}
语法定义的函数从外部作用域继承上下文。