首页  >  问答  >  正文

为什么在函数参数中同时使用扩展运算符和解构赋值的好处是什么?

<p>我一直遇到这种语法,但我很难理解它到底在做什么:</p> <pre class="brush:php;toolbar:false;">export class SomeClass extends SomeParent { constructor(...[configuration]) { // 只引用“configuration”的代码行 } }</pre> <p>在Node REPL中尝试后,我发现以下两种写法没有区别:</p> <pre class="brush:php;toolbar:false;">function foo(...[bar]) { console.log(bar); console.log(arguments) }</pre> <p>...和...</p> <pre class="brush:php;toolbar:false;">function foo(bar) { console.log(bar); console.log(arguments) }</pre> <p>...那么它有什么作用呢?</p>
P粉775723722P粉775723722431 天前433

全部回复(1)我来回复

  • P粉670107661

    P粉6701076612023-08-17 10:52:42

    看起来确实毫无意义。您需要询问代码的作者他们在这方面的意图,他们至少应该留下一个注释。

    然而,实际上存在微小的差异:剩余参数不计入函数的参数个数。因此,(function(bar){}).length1,而 (function(...[bar]){}).length0

    回复
    0
  • 取消回复