ES2015:来自被破坏的类的Call Inner方法

时间:2016-04-24 02:48:41

标签: javascript class oop object ecmascript-6

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

我有这个MainClass:

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

然后我有另一个类,它从第一个类开始:

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

someClass我覆盖了启动方法。这很好,因为它试图调用update mothod。

但它将update方法作为undefined返回。

我明白了,this在这种情况下是App类,因此update中的App未定义。

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

1 个答案:

答案 0 :(得分:1)

是的,有。实例化一个新对象,然后在该对象上调用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