【发布时间】:2016-04-03 09:21:57
【问题描述】:
我正在尝试使用属性初始值设定项来将箭头函数用作类的方法。 但是在声明方法之前,它们是不可访问的。 如果我更改它们的声明顺序,它会起作用。
这是预期的行为还是 babel 转译
class SampleClass1 {
method2 = this.method1();
method1() {
return "works";
}
}
console.log((new SampleClass1()).method2); // Works
class SampleClass2 {
method2 = this.method1();
method1 = () => {
return "works";
}
}
console.log((new SampleClass2()).method2); // Error
下面的 url 是一个 babel repl 实例,我要演示的代码请参考。
【问题讨论】:
-
您的第二个块缺少 }。
-
@nnnnnn 感谢您指出问题描述中的错误,在我的代码库中我做对了。我面临的问题是一个概念问题
-
我认为这是正确的行为,你不能在定义之前存储函数调用的结果。
-
@Hitmands 但如果 method1 是类方法。它工作正常。
-
@Sagi_Avinash_Varma 它与示例中的相同:
(function(){var a=test(); function test(){return "ok"} })()vs(function(){var a=test(); var test=function(){return "ok"} })()
标签: javascript babeljs ecmascript-next