Jul*_*ian 5 javascript ecmascript-6
我正在使用ES6类,而我的类(A)扩展了类B,类B扩展了类C。A如何扩展一个方法,然后调用该方法的C版本。
class C {
constructor() {
console.log('class c');
}
}
class B extends C {
constructor() {
super()
console.log('no, I don't want this constructor.');
}
}
class A extends B {
constructor() {
// What should I be doing here? I want to call C's constructor.
super.super();
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:谢谢,我将停止尝试做这个愚蠢的事情。在我的情况下,代码重用的次要收获不值得杂技。
您不能在ES6类中调用父级的构造函数。从您的评论来看,也许您应该尝试这样的事情?
class Mixin {
static include(constructor) {
const descriptors = Object.getOwnPropertyDescriptors(Mixin.prototype);
Object.keys(descriptors).forEach(name => {
Object.defineProperty(constructor.prototype, name, descriptors[name]);
});
}
someCommonFunction() {
// Perform operation common to B and C
}
}
delete Mixin.prototype.constructor;
class B extends A {
}
Mixin.include(B);
class C extends A {
}
Mixin.include(C);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
542 次 |
最近记录: |