执行此操作的原因很复杂,但是归结为无法理解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);
答案 0 :(得分:1)
自己回答:
class A {
constructor() {}
}
function B() {
Object.assign(this, new A());
}
B.prototype = Object.create(A.prototype);
不确定这里是否有副作用