为什么在函数参数中同时使用扩展运算符和解构赋值的好处是什么?
P粉775723722
P粉775723722 2023-08-16 16:27:57
0
1
468
<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粉775723722
P粉775723722

全部回复(1)
P粉670107661

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

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板