我有一个BMW类,它扩展了Car类并重写了printModel方法:



class Car{
    constructor(model){
        this.model = model
    }
    printModel(){
        console.log(this.model)
    }
}

class BMW extends  Car{
    constructor(model, color){
        super(model);
        this.color = color
    }
    printModel(){
        console.log(this.model, this.color)
    }
}

let bmw = new BMW('F6', 'blue')
bmw.printModel() //will print : 'F6 blue'
bmw.super.printModel()// expected: 'F6' but not working





如何在此BMW类的实例上调用类的超级方法?

最佳答案

在类的上下文之外无法引用超级实例。如果确实必须从类外部使用超级实例中的方法,则可以自己调用该方法:

Car.prototype.printModel.call(bmw);

07-28 03:45