问题是在调用超级方法之前,如何从构造函数中获得对类静态属性的访问?
class A
{
constructor(input) {
console.log('A', typeof new.target);
}
}
class B extends A
{
static template = '';
constructor() {
console.log('B', typeof new.target);
super();
}
}
class C extends B
{
static template = 'CCC';
}
new C();出于某种原因我得到了:
B undefined
A undefined而不是
B function
A function我大约一年前就开始已经问了这个问题了。就目前而言,其中所提供的解决办法已不再可行。
您可以尝试巴贝尔控制台中的代码。有趣的是,没有babel (例如,在最新的Chrome中)和当es2015复选框关闭时,这段代码运行良好。
发布于 2016-08-26 06:46:59
这似乎是巴贝尔的一只虫子。我写了一个小插件,它可以转换new.target。
$ npm install --save-dev git://github.com/vbarbarosh/babel_plugin_transform_es2015_newtarget
$ cat .babelrc
...
"plugins": ["transform-es2015-newtarget"],
...https://stackoverflow.com/questions/39155082
复制相似问题