【发布时间】:2016-08-17 13:21:34
【问题描述】:
我正在学习 ES6 类和对象。为此,我正在制作一个示例应用程序,我发现了这个问题:
我有这个 MainClass:
class App {
boot() {
console.log('app booted')
}
}
然后我有另一个类,它从第一个类扩展:
class someClass extends App {
boot() {
this.update()
}
update() {
console.log('update Method!')
}
}
来自someClass 我正在覆盖引导方法。这很好用,因为它正在尝试调用 update 方法。
但它以undefined 的形式返回update 方法。
我明白了,在这种情况下this 是App 类,所以update 在App 中是未定义的。
有没有办法从someClass 类中的boot 方法调用update 方法?
【问题讨论】:
-
“我明白了,在这种情况下这是 App 类,所以更新在 App 内部是未定义的。” 不,这是不正确的。
this指的是什么取决于你如何称呼boot。也许您在某处将boot作为回调传递。在这种情况下,请查看How to access the correctthis/ context inside a callback?。如果不是这样,请告诉我们你是怎么称呼它的。 -
我第二个菲利克斯。请添加您的调用方式、您期望的返回值、您期望的日志记录以及您在这两个方面实际得到的结果。
标签: javascript class oop object ecmascript-6