In JavaScript ist es möglich, eine variable Anzahl von Argumenten an eine Funktion zu senden, auch aus einem Array. Der Ansatz unterscheidet sich jedoch von der *args-Notation von Python.
Verwendung eines Arrays:
Wenn ein Array als Argumente an eine Funktion übergeben wird, wird es als einzelnes Argument behandelt. Eine benutzerdefinierte Schleife kann verwendet werden, um über das Array zu iterieren, um auf seine Elemente zuzugreifen:
var arr = ['a', 'b', 'c']; var func = function() { // debug console.log(arguments.length); // for (var i = 0; i < arguments.length; i++) { console.log(arguments[i]); } }; func('a', 'b', 'c', 'd'); // prints 4, then 'a', 'b', 'c', 'd' func(arr); // prints 1, then 'Array'
Spread-Syntax (ES6):
ES6 hat die Spread-Syntax eingeführt, mit der Sie ein Array direkt verteilen können Array-Elemente als einzelne Argumente für eine Funktion:
func(...arr); // prints 4, then 'a', 'b', 'c', 'd'
Parameterliste (ES6):
Alternativ können Sie die Spread-Syntax direkt in einer Funktionsparameterliste verwenden, um ein Array für zu erstellen Argumente der Funktion:
function func(...args) { args.forEach(arg => console.log(arg)); } const values = ['a', 'b', 'c']; func(...values); func(1, 2, 3);
Beliebige Argumente übergeben:
Unabhängig von der verwendeten Methode können Sie mit JavaScript eine beliebige Anzahl von Argumenten an eine Funktion übergeben.
Argument abrufen Länge:
Sie können die Anzahl der erwarteten Argumente bestimmen, indem Sie auf die Längeneigenschaft einer Funktion zugreifen:
var test = function (one, two, three) {}; console.log(test.length); // 3
Verwenden von apply (Legacy):
Zuvor galt apply Die Methode könnte verwendet werden, um ein Array als Argumente an eine Funktion zu übergeben und diesen Wert festzulegen:
func.apply('test', arr);
Die Spread-Syntax wird jetzt jedoch wegen ihrer Einfachheit und Vielseitigkeit bevorzugt.
Das obige ist der detaillierte Inhalt vonWie übergebe ich variable Argumente an JavaScript-Funktionen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!