Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript中的默认构造函数_Javascript_Ecmascript 6 - Fatal编程技术网

Javascript中的默认构造函数

Javascript中的默认构造函数,javascript,ecmascript-6,Javascript,Ecmascript 6,在MDN中,提到如果不指定构造函数方法,则使用默认构造函数 对于基类,默认构造函数是: constructor() {} constructor(...args) { super(...args); } 对于派生类,默认构造函数是: constructor() {} constructor(...args) { super(...args); } 为什么派生类默认构造函数有rest参数(…args),而基类默认构造函数没有rest参数 >在精确的情况下, .ARGs似乎是多余的,

在MDN中,提到如果不指定构造函数方法,则使用默认构造函数

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

constructor() {}
constructor(...args) {
  super(...args);
}
对于派生类,默认构造函数是:

constructor() {}
constructor(...args) {
  super(...args);
}

为什么派生类默认构造函数有rest参数(…args),而基类默认构造函数没有rest参数

>在精确的情况下,<代码> .ARGs<代码>似乎是多余的,但是当基本对象不是代码>对象< /代码>时,你应该考虑这个情况。在这种情况下,使用参数调用超级构造函数是完全合理的


那么,让我们假设有类
A
B
A
确实有一个明确定义的构造函数,
B
没有,但是
A
B
的超类。在这种情况下,如果调用<代码>新B(MyARG),调用<代码> >构造函数< /C> >代码> A/<代码>

< P>是合乎逻辑的。在这种精确的情况下,<>代码> ARGs<代码>似乎是多余的,但是当基本对象不是代码>对象< /代码>时,您应该考虑这种情况。在这种情况下,使用参数调用超级构造函数是完全合理的


那么,让我们假设有类
A
B
A
确实有一个明确定义的构造函数,
B
没有,但是
A
B
的超类。在这种情况下,如果调用
new B(myArg)
,则调用
A

构造函数的
是合乎逻辑的,它会将参数传递给super
..
表示不同的数量。“为什么派生类默认构造函数有rest参数(…args),而基类默认构造函数没有rest参数?”-因为它们无论如何都不会有任何影响?基类是
对象。原型
和它的
构造函数
不带任何参数。这似乎是要问MDN帖子的作者的问题,而不是堆栈溢出默认构造函数是noop。如果父类有noop或op构造函数,那么子类就不必担心了,它们应该只是为了安全起见
..
表示不同的数量。“为什么派生类默认构造函数有rest参数(…args),而基类默认构造函数没有rest参数?”-因为它们无论如何都不会有任何影响?基类是
对象。原型
和它的
构造函数
不带任何参数。这似乎是要问MDN帖子的作者的问题,而不是堆栈溢出默认构造函数是noop。若父类有noop或op构造函数,那个么子类就不必担心了,它们应该只是为了安全起见。