'这'在箭头函数与对象文字中的非箭头函数中

时间:2017-08-29 19:26:16

标签: javascript ecmascript-6

在下面的代码中,在obj1的对象文字中,我会假设'这个'在两个函数中都会引用obj1,但在胖箭头函数中它不会。有人可以解释原因吗?我会假设这些函数要么等效,要么在胖箭头函数中,'这个'将在词汇上定义为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();

1 个答案:

答案 0 :(得分:1)

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