以下是涉及类继承的simple plunker example,其中垫片和Babel选项设置为stage: 0, loose: 'all'
:
class Hello {
static address = ', world!';
greeting = 'Hello';
constructor() {
this.greet();
}
greet() {
document.write(this.greeting + Hello.address);
}
}
class Hi extends Hello {
greeting = 'Hi';
constructor() {
super();
}
}
new Hi().greet();
显然,它在IE5.5 +中可以正常工作。
对于针对旧版浏览器的ES6 / ES7转换OOP代码,Babel spec.protoToAssign
转换器可能有益(或不合需要)的情况是什么?
答案 0 :(得分:2)
ES6类继承也意味着
Hi.address
会起作用,因为Hi
继承自Hello
。如果没有protoToAssign
,这将无法在IE< = 10。
然而,一般情况与该页面上描述的情况完全相同。 IE< = 10不支持__proto__
的分配,因此,如果您依赖依赖它的行为,它将无效。
所有这些都包含在Babel的caveats页面中。