【发布时间】:2016-11-09 21:27:38
【问题描述】:
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?
【问题讨论】:
-
动态调用方法的重点是允许它们被覆盖?
-
如果您不希望
bark以标准的OO 类方式被覆盖,也许您应该重新考虑如何调用该函数?你能把它作为一个助手完全从课堂上移走,然后从两个地方调用这个助手吗?
标签: node.js class ecmascript-6 babeljs