Arrow函数如何在构造函数中工作?

时间:2017-06-18 08:40:55

标签: javascript ecmascript-6 arrow-functions

我对构造函数中的箭头函数有点迷惑。

据我所知:如果我们将使用箭头功能,关键字不会反弹到该实际功能。它继承自父范围。

让我们举个例子:

var d = {
  b: 'b',
  x: () =>{
    console.log(this); // this will return Window Object.
 }
}
d.x();

它将打印Window对象。没关系。

但是在构造函数

function A(){
  this.b ='b';
  this.x = () =>{
    console.log(this);
  }
}
var c = new A()
c.x();

此打印对象c 。但据我说它应该返回Window Object。为什么?

1 个答案:

答案 0 :(得分:1)

在构造函数this中引用构造对象。为什么你能做this.b ='b';

由于箭头函数只捕获当前上下文,因此它会捕获构造函数中的对象。