javascript - 在 JS 派生类的构造函数中使用 super() 感到困惑
问题描述
我是 JS 新手,正在学习 JS 课程。另外,我发现在派生类中我们必须使用 super() 来调用父类的构造函数。问题是为什么我们需要在派生类的构造函数中使用 super() 来调用父类的构造函数。我们为什么要关心父类的构造函数。这是示例:
class Car{
constructor(speed)
{
this.speed=speed
}
}
class BMW extends Car
{
constructor(speed)
{
super(speed);
}
}
即使我们不想在派生类中使用“速度”,我们也需要在派生类中使用 super
解决方案
如果不需要它们,您可以简单地调用 super 而不使用参数:
class BMW extends Car
{
constructor()
{
super();
}
}
我只想了解为什么我们需要在派生类的构造函数中使用 super()。
如果你不使用,那么它会创建自己的构造函数而不是父类的构造函数继承。也就是说,您将避免在使用 super 时复制构造函数部分。
顺便说一句,在 ES7 中,即使你不使用构造函数,它也会从父类继承。
推荐阅读
- sql - 在查询中,如果一行缺少数据,我想从上一行中选择数据
- jenkins - Jenkins 中的 Kubernetes 插件:无法通过代理进行身份验证
- python - 如何使用wsl编写python crontab
- asp.net-core - 2 人 2 因素身份验证?
- perl - PERL5.26.1 eval tr 带有插值的运算符(骆驼书第 76 页上的示例)不起作用
- r - R中只有“1”的底部三角形和只有“0”的顶部三角形的矩阵
- c# - FirstOrDefaultAsync 在 Azure 上使用 .NET 导致 NgsqlConnection 中出现 NullReferenceException
- macos - MacOS Catalina 10.15.4 版中的“Spotlight 意外退出”,安装 Xcode 12 后发生此崩溃
- c++ - 这种奇怪的 C++ 语法有什么作用?
- c# - EditorForModel 在 EditorTemplate 中不起作用?