Babeljs类的静态构造函数
babeljs class static in constructor
问题是如何在调用 super方法之前从构造函数内部访问类静态属性 ?
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控制台中尝试代码。有趣的部分是,这段代码工作得很好,没有babel(例如在最新的Chrome),当es2015复选框关闭。
这似乎是通天塔中的一个bug。我写了一个小插件来编译new.target:
https://github.com/vbarbarosh/babel_plugin_transform_es2015_newtarget$ npm install --save-dev git://github.com/vbarbarosh/babel_plugin_transform_es2015_newtarget
$ cat .babelrc
...
"plugins": ["transform-es2015-newtarget"],
...
相关文章:
- ES6构造函数返回基类的实例
- 使用Google Visualization动态调用构造函数
- javascript中对象构造函数中的var属性与this.properties
- 理解typescript中的构造函数接口
- 为什么构造函数不是构造函数
- 如果在构造函数中有“返回”,则在 JavaScript 中的新运算符中做了什么
- 拦截对构造函数的调用
- 使用闭包共享构造函数参数
- 文本表示法VS.构造函数,用于在JavaScript中创建对象
- 从js引擎的角度来看闭包和构造函数是如何工作的
- 如何使用此从对象访问构造函数
- 从构造函数es6调用静态方法
- 何时有时将对象类型定义为将实例绑定方法镜像为构造函数上的静态实用程序函数很有用
- Javascript ES6 中的静态构造函数
- JavaScript 中构造函数的静态方法模式
- 自动递增对象id JS构造函数(静态方法和变量)
- 如何在构造函数中使用静态助手方法(不需要在构造函数中声明它们)
- 在JavaScript静态实例上使用构造函数
- 将this.constructor与构造函数调用一起使用以访问静态属性时是否存在兼容性问题
- Babeljs类的静态构造函数