首页 > 解决方案 > 像下面这样在 Javascript 中将方法传递给基类的目的是什么?

问题描述

我看过一个教程,其中一个可能的函数被传递给父级,如下所示:

class Car {
  constructor(door, engine, color){
    this.door = door;
    this.engine = engine;
    this.color = color;
  }
  carStats(){
    console.log('in car stats...');
  }
}

class SUV extends Car {
  constructor(door, engine, color, brand, carStats){
    super(door, engine, color, carStats){
    this.brand = brand;
    this.wheels = 5;
    this.cheap = true;
  }
}

如果您将另一个函数传递给它,是否有可能覆盖父方法?

谢谢

标签: javascript

解决方案


调用 时super,实际上调用的是构造函数Car,但Car构造函数只需要 3 个参数,而不是 5 个。

您应该能够carStats通过重新定义方法来覆盖该方法,但我认为这不是最佳实践。

class SUV extends Car {
    constructor(door, engine, color, brand, carStats){
        super(door, engine, color);
        this.carStats = carStats;
        this.brand = brand;
    }
}

推荐阅读