javascript - ES2015 : Call Inner method from overwrited class

标签 javascript class oop object ecmascript-6

我正在学习 ES6 类和对象。为此,我正在制作一个示例应用程序,我发现了这个问题:

我有这个主类:

class App {
    boot() {
        console.log('app booted')
    }
}

然后我有另一个类,它从第一个类扩展而来:

class someClass extends App {
    boot() {
        this.update()
    }
    update() {
        console.log('update Method!')
    }
}

someClass 我正在覆盖启动方法。这工作正常,因为它正在尝试调用 update 方法。

但它返回 update 方法为 undefined

我明白了,在本例中,thisApp 类,因此 updateApp 内部未定义.

有没有办法从 someClass 类中的 boot 方法调用 update 方法?

最佳答案

是的,有。实例化一个新对象,然后对该对象调用 boot()。例如像这样:

class App {
    boot() {
        console.log('app booted')
    }
}

class someClass extends App {
    boot() {
        this.update()
    }
    update() {
        console.log('update Method!')
    }
}

const test = new someClass();
test.boot(); // update Method!

您可以测试您的代码here .

关于javascript - ES2015 : Call Inner method from overwrited class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36818762/

相关文章:

javascript - 如何使用javascript删除css属性?

c++ - Setter 不更改类中 vector 的数据

javascript - 在 Backbone 中访问父类

java - 如果抽象类不能实例化,具体是什么代码: ABS clsAbs = new ABS () {

javascript - 为什么我不能直接修改组件的状态,真的吗?

javascript - 如何获取标题和按钮/链接内联

oop - 在 MATLAB 中根据名称实例化类

ruby - Ruby 中的 bool 参数错误

javascript - Firefox WebExtension - 如何获取和修改跨域iframe的内容

java - Java 中继承的坏例子是什么?