错误:在类构造函数之外调用super

时间:2017-09-15 07:31:29

标签: javascript ecmascript-6

我尝试调用父方法,但是我收到错误:

  

错误:在类构造函数之外调用super

我的例子:

class xo{
    cool(x){
        console.log(`parent init${x}`)
    }
}
class boo extends xo{
    cool(val){
        super(val);
        console.log(`child init${x}`)
    }
}

x = new boo;

2 个答案:

答案 0 :(得分:7)

您调用的不是父方法,而是父构造函数,它在构造函数之外无效调用。您需要使用super.cool(val);代替super(val);

class xo{

    cool(x) {
        console.log(`parent init${x}`)
    }

}

class boo extends xo {

    cool(val) {
        super.cool(val);
        console.log(`child init${x}`)
    }

}

x = new boo();

答案 1 :(得分:3)

使用super.cool(val)来调用超类上的cool方法。 super()调用超级班级'构造