我对构造函数中的箭头函数有点迷惑。
据我所知:如果我们将使用箭头功能,关键字不会反弹到该实际功能。它继承自父范围。
让我们举个例子:
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。为什么?
答案 0 :(得分:1)
在构造函数this
中引用构造对象。为什么你能做this.b ='b';
?
由于箭头函数只捕获当前上下文,因此它会捕获构造函数中的对象。