如何使用ES5扩展ES6类?

时间:2018-06-19 12:08:39

标签: javascript ecmascript-6 ecmascript-5

执行此操作的原因很复杂,但是归结为无法理解mixin或其他任何修改ES6类原型的方法。因此,我回到了ES5,但是我不知道如何在没有new的情况下调用ES6类的构造函数:

class A {
  constructor() {}
}

function B() {
  // what do I put here?  I would do something like
  // A.prototype.constructor.call(this) but that throws an error saying the
  // constructor can only be called with `new`
}
B.prototype = Object.create(A.prototype);

1 个答案:

答案 0 :(得分:1)

自己回答:

class A {
  constructor() {}
}

function B() {
  Object.assign(this, new A());
}
B.prototype = Object.create(A.prototype);

不确定这里是否有副作用