如何继承类并调用父构造函数?

时间:2017-09-07 18:35:40

标签: javascript class ecmascript-6 super

我创建了一个类:

class Human {
    constructor(name){
        this.name = name;
    }

    greet(){
        alert(this.name);
    }
}

工作正常。但是,当我尝试从该类继承时,我有一个错误

class Person extends Human{
    constructor(name, age){
        super.constructor(name);
        this.age = age;
    }
    greet(){
        super.greet(this.name + this.age);
    }
}

var no = new Person("Brent", 65);

我有这样的错误 - this在Person类构造函数中使用了未初始化的

如何正确继承,以便提醒年龄和姓名?

2 个答案:

答案 0 :(得分:4)

要调用父构造函数,您需要使用super(…)而不是super.constructor(…)。此特殊super调用会使用该实例初始化extending class中的this关键字。

答案 1 :(得分:1)

您只需在构造函数中调用super()