class Dog {
bark() {
console.log(`Dog.bark`)
}
callMyBark() {
// how do I have this function use the bark above and not Pug.bark?
this.bark()
}
}
class Pug extends Dog {
bark() {
console.log(`Pug.bark`)
}
callMyBark() {
super.callMyBark()
}
}
let pug = new Pug()
pug.callMyBark()
上面的代码记录Pug.bark
和预期的行为是登录Dog.bark
。我怎样才能让Dog.callMyBark
方法运行Dog.bark
?问题使用此函数调用时调用类的方法,使用超
动态调用方法的重点是允许它们被覆盖? – Bergi
如果你不想在标准的面向对象类中重写'bark',或许你应该重新考虑你是如何调用这个函数的?你能把它作为助手完全从课堂上移走,然后从两个地方拨打助手吗? – loganfsmyth