为什么箭头函数作为静态成员值不在词法范围内?

问题描述

class Foo {
  static v = 123;

  static bar = () => this.v;
}

console.log(Foo.bar());

我希望这段代码返回undefined,因为箭头函数是按词法作用域划分的,因此必须this急切地绑定到外部作用域。

但是,它返回123

为什么会这样?

是的,我知道它仍然是第3阶段,但是-提议的标准为何如此表现? (有关另一个示例,请参见https://babeljs.io/docs/en/babel-plugin-transform-class-properties。)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)