在JavaScript ES2015中,扩展一个类时,我们是否需要显式地创建一个新的构造函数,还是只需要使用父类的构造函数?

我理解based on this stackoverflow post,如果你想在子类中使用它并为它添加额外的代码,我们需要调用super.但是,如果没有其他的工作,我们是否需要调用make一个新的构造函数并使用super静态?

class SpecialCart extends Cart {

  // Is this constructor really necessary?
  constructor(name){
    super(name); 
  }

  // other methods go here....

}
最佳答案
不,如果省略类中的构造函数,它将自动生成:

constructor( ) { } // for classes without `extends`
constructor(...args) { super(...args); } // for classes with `extends`

可以在here中找到规范的相关部分:

ClassTail : ClassHeritageopt { ClassBodyopt }

If constructor is empty, then if ClassHeritageopt is present, let constructor be the result of parsing the source text constructor(... args){ super (...args);}

转载注明原文:在JavaScript ES2015中,扩展一个类时,我们是否需要显式地创建一个新的构造函数,还是只需要使用父类的构造函数? - 代码日志