首页 > 解决方案 > 在 JS 派生类的构造函数中使用 super() 感到困惑

问题描述

我是 JS 新手,正在学习 JS 课程。另外,我发现在派生类中我们必须使用 super() 来调用父类的构造函数。问题是为什么我们需要在派生类的构造函数中使用 super() 来调用父类的构造函数。我们为什么要关心父类的构造函数。这是示例:

class Car{
constructor(speed)
{
this.speed=speed
}

}

class BMW extends Car
{
constructor(speed)
{
super(speed);
}
}

即使我们不想在派生类中使用“速度”,我们也需要在派生类中使用 super

标签: javascript

解决方案


如果不需要它们,您可以简单地调用 super 而不使用参数:

class BMW extends Car
{
  constructor()
  {
    super();
  }
}

我只想了解为什么我们需要在派生类的构造函数中使用 super()。

如果你不使用,那么它会创建自己的构造函数而不是父类的构造函数继承。也就是说,您将避免在使用 super 时复制构造函数部分。

顺便说一句,在 ES7 中,即使你不使用构造函数,它也会从父类继承。


推荐阅读