Javascript 如何在Nodejs中调用祖父母方法
我需要重写父方法并使用NodeJs调用祖父母方法。可能吗 例如:Javascript 如何在Nodejs中调用祖父母方法,javascript,node.js,ecmascript-6,Javascript,Node.js,Ecmascript 6,我需要重写父方法并使用NodeJs调用祖父母方法。可能吗 例如:A和B是库类 class A { printFunction() { console.log('Hello'); } } class B extends A { printFunction() { console.log('World'); } runFunction() { console.log('Running'); } } 现在我有一个类C,它
A
和B
是库类
class A {
printFunction() {
console.log('Hello');
}
}
class B extends A {
printFunction() {
console.log('World');
}
runFunction() {
console.log('Running');
}
}
现在我有一个类C
,它扩展了类B
class C extends B {
// can i call class A printFunction here?
}
在C类中,我可以调用A的
printFunction
吗?不,而C类扩展了B类,因为您已经重写了B类中的printFunction()
。从C类的角度来看,它不在乎A类对printFunction()
的定义是什么,因为现在已经修改了
唯一的方法是让C类扩展A类,并从B类重新定义您需要的任何函数。您可以使用以下方法调用确切的函数:
编写代码,看看它是否调用函数-然后你就会知道。你为什么要这样做?如果我在C类中调用
printfunction
,它将调用B类的函数。有没有方法调用A类的函数?@rijin我想使用B类的大部分逻辑,但我只想重用一个非常特定于B类的方法答:所以我们都在同一页上,我们应该清楚,必须这样做表明类层次结构设计得很糟糕。原型是一个旧方法。ES6中还有其他选项吗?我的意思是说,我们可以创建一个类A的实例,然后使用.call
?
class C extends B {
callA() {
A.prototype.printFunction.call(this);
}
}