在 javascript class 中,我如何对所有现有参数进行 super()?
In javascript class, how do I super() all the existing arguments?
假设,
如果父 class 在 class 中有太多要继承的参数,
我如何 super() 将父元素中的所有现有参数扩展到其扩展 class?
我应该找出父class的构造函数中的所有参数吗?
全部手动输入?
我试过 google 它像 'super all, super everything, super all the existing ..etc' 但是
仍然找不到答案。
提前谢谢你。
如果 child 和 parent 采用相同的参数,使用 rest 和 spread:
class Child extends Parent {
constructor(...args) {
super(...args);
}
}
如果构造函数签名相同,这将适用于任何 Child,而不管 Parent 的参数是什么。这也适用于多重继承 类,例如:
class GrandChild extends Child {
constructor(...args) {
super(...args);
}
}
但是长继承链通常是 JS 中的反模式。我建议在大多数情况下避免使用它们,除非有充分的理由。
如果 child 有一个额外的尾随参数,如果 parent 没有定义这样的参数,将它传递给 parent 就可以正常工作。
如果 child 有额外的前导参数,请使用:
class Child extends Parent {
constructor(childArg, ...args) {
super(...args);
}
}
假设, 如果父 class 在 class 中有太多要继承的参数, 我如何 super() 将父元素中的所有现有参数扩展到其扩展 class?
我应该找出父class的构造函数中的所有参数吗? 全部手动输入?
我试过 google 它像 'super all, super everything, super all the existing ..etc' 但是 仍然找不到答案。
提前谢谢你。
如果 child 和 parent 采用相同的参数,使用 rest 和 spread:
class Child extends Parent {
constructor(...args) {
super(...args);
}
}
如果构造函数签名相同,这将适用于任何 Child,而不管 Parent 的参数是什么。这也适用于多重继承 类,例如:
class GrandChild extends Child {
constructor(...args) {
super(...args);
}
}
但是长继承链通常是 JS 中的反模式。我建议在大多数情况下避免使用它们,除非有充分的理由。
如果 child 有一个额外的尾随参数,如果 parent 没有定义这样的参数,将它传递给 parent 就可以正常工作。
如果 child 有额外的前导参数,请使用:
class Child extends Parent {
constructor(childArg, ...args) {
super(...args);
}
}