Babel'protoToAssign'变换器和ES6类继承

时间:2015-10-03 18:03:32

标签: javascript ecmascript-6 babeljs

以下是涉及类继承的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转换器可能有益(或不合需要)的情况是什么?

1 个答案:

答案 0 :(得分:2)

ES6类继承也意味着

Hi.address

会起作用,因为Hi继承自Hello。如果没有protoToAssign,这将无法在IE< = 10。

中使用

然而,一般情况与该页面上描述的情况完全相同。 IE< = 10不支持__proto__的分配,因此,如果您依赖依赖它的行为,它将无效。

所有这些都包含在Babel的caveats页面中。