JavaScript bietet Flexibilität bei der Übergabe von Argumenten an Funktionen, einschließlich der Möglichkeit, eine variable Anzahl von Argumenten aus einem Array zu senden.
Wie Python verfügt JavaScript über ein spezielles Argumentobjekt, das alle übergebenen Argumente darstellt zu einer Funktion. Dieses Objekt enthält jedes Argument als indizierbare Eigenschaft. Zum Beispiel:
function func() { console.log(arguments.length); for (arg in arguments) console.log(arg); } func('a', 'b', 'c', 'd'); // prints 4 and 'a', 'b', 'c', 'd'
Die direkte Übergabe eines Arrays an eine Funktion als Argumente führt jedoch nicht zum gewünschten Ergebnis. Stattdessen wird das Array selbst als einzelnes Argument behandelt. Um ein Array als einzelne Argumente zu übergeben, können Sie die Methode apply() verwenden:
var arr = ['a', 'b', 'c']; function func() { console.log(this); // 'test' console.log(arguments.length); // 3 for (var i = 0; i < arguments.length; i++) { console.log(arguments[i]); } } func.apply('test', arr);
Dadurch werden „test“, 3, „a“, „b“ und „c“ ausgegeben.
Seit ES6 hat JavaScript die Spread-Syntax (...) eingeführt, die eine prägnantere Möglichkeit bietet, dasselbe zu erreichen Ergebnis:
func(...arr);
Dadurch werden die Elemente von arr in einzelne Argumente erweitert, die an die Funktion übergeben werden.
Sie können auch kombinieren Benannte Parameter mit der Spread-Syntax, um anzugeben, dass einige Argumente als Argumente behandelt werden sollen Array:
function func(first, second, ...theRest) { //... }
JavaScript ermöglicht die Übergabe einer variablen Anzahl von Argumenten an Funktionen über das Argumentobjekt oder, in ES6 und höher, mithilfe der Spread-Syntax. Diese Flexibilität ermöglicht eine Vielzahl von Anwendungsfällen, beispielsweise die Erstellung generischer Funktionen, die eine beliebige Anzahl von Eingaben verarbeiten können.
Das obige ist der detaillierte Inhalt vonWie kann ich eine variable Anzahl von Argumenten an JavaScript-Funktionen übergeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!