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