在ES6中可以在扩展类中使用不同的构造函数参数吗?

问题描述 投票:0回答:1

我在使用不同参数的构造函数时,在Visual Studio Code中收到警告。扩展类中的参数需要和超级类一样吗?

类。

class Options {
  constructor(name = null) {
     this.name = name;
  }
}

class ExtendedClass extends Options {
  constructor(colors = null, option = false) {
    if (colors!=null) {
      this.numberOfColors = colors;
    }
    this.option = option;
  }
}

UPDATE: 看起来使用不同的参数并不重要 但问题是调用super类才是问题?需要更多的测试,但看起来这就是问题所在。

class ExtendedClass extends Options {
  constructor(colors = null, option = false) {
    super();

    if (colors!=null) {
      this.numberOfColors = colors;
    }
    this.option = option;
  }
}
javascript ecmascript-6 es6-class
1个回答
1
投票

扩展类[构造函数]中的参数是否需要与超级类[构造函数]相同?

简短的回答是:不需要。

然而。super() 期待与超级类构造函数相同的参数。(super() 用提供的参数调用超级类构造函数。)

© www.soinside.com 2019 - 2024. All rights reserved.