Warum bietet die Verwendung sowohl des Spread-Operators als auch der destrukturierenden Zuweisung in Funktionsparametern Vorteile?
P粉775723722
P粉775723722 2023-08-16 16:27:57
0
1
462
<p>Ich stoße immer wieder auf diese Syntax, aber ich habe Probleme zu verstehen, was genau sie bewirkt: </p> <pre class="brush:php;toolbar:false;">export class SomeClass erweitert SomeParent { Konstruktor(...[Konfiguration]) { // Verweisen Sie nur auf die Codezeile „configuration“. } }</pre> <p>Nachdem ich es in Node REPL ausprobiert hatte, stellte ich fest, dass es keinen Unterschied zwischen den folgenden beiden Schreibweisen gibt: </p> <pre class="brush:php;toolbar:false;">function foo(...[bar]) { console.log(bar(arguments) }</pre> <p>...und...</p> <pre class="brush:php;toolbar:false;">function foo(bar) { console.log(bar) }</pre> <p>...Was macht es also? </p>
P粉775723722
P粉775723722

Antworte allen(1)
P粉670107661

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

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

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage