const fooBar = parent => class extends parent {
constructor() {
super();
this.foo = 1;
}
bar() {
return 2;
}
}
class FooBar extends fooBar(Object) {};
console.log(new FooBar());
它创造了一个混音
fooBar
FooBar
从它。运行此代码,可以预见,输出
FooBar { foo: 1 }
现在让我们把巴贝尔带来。我用6.xx和最新的7.2都试过了。从一个新文件夹开始,
npm i @babel/core @babel/preset-env
echo { "presets": ["@babel/preset-env"] } > .babelrc
npx babel test.js > test2.js
node test2.js
{ foo: 1 }
-正如我们所看到的,原型机丢失了。正在尝试调用
bar
创建的实例将失败。
这是巴别塔的一个漏洞还是我在不受支持的方式使用继承?
更新:
https://babeljs.io/en/repl
所以我的安装似乎没有问题。