在JavaScript中,类中的构造函数是必需的吗?

And*_*eng 12 javascript ecmascript-6

我正在阅读"类主体和方法定义"Mozilla文档部分中的 JavaScript类.在构造函数部分下,它表明了这一点

构造函数方法是一种用于创建和初始化使用类创建的对象的特殊方法.在类中只能有一个名为"constructor"的特殊方法.如果类包含多个构造函数方法,则将抛出SyntaxError.构造函数可以使用super关键字来调用超类的构造函数.

从上面的陈述中,我可以确认我们不能有多个构造函数.但它没有提到构造函数在JavaScript中的类声明/表达式中是否必需.

Sur*_*tta 18

你应该只写一个没有构造函数的类,看看它是否有效:)

来自 same docs

如上所述,如果未指定构造函数方法,则使用默认构造函数.对于基类,默认构造函数是:

constructor() {}
Run Code Online (Sandbox Code Playgroud)

对于派生类,默认构造函数是:

constructor(...args) {
  super(...args);
}
Run Code Online (Sandbox Code Playgroud)

  • 是的,你可以只测试这些东西,但对于人们来说,通过谷歌阅读它比手动测试它更快。所以他一开始就问是件好事。 (9认同)

小智 7

不,没有必要。默认构造函数定义为:

constructor() {}
Run Code Online (Sandbox Code Playgroud)

对于继承,我们使用这个构造函数来调用超类:

constructor() {
    super.call()
}
Run Code Online (Sandbox Code Playgroud)