繁体   English   中英

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

[英]How Arrow function work inside constructor?

我对构造函数内部的箭头功能感到困惑。

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

让我们举个例子:

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。 为什么呢

在构造函数中, this是指构造对象。 你为什么还能这样做this.b ='b';

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM