Javascript: "Unendlich" Parameter für Funktion?
In Chrome, wenn ich console.log
im folgenden:
console.log("A parameter", "A parameter", "A parameter", "A parameter", "A parameter", "A parameter", "A parameter", "A parameter", "A parameter", "A parameter", "A parameter", "A parameter", "A parameter");
...er druckt es richtig, mit keine Fehler oder Warnungen. Ich angehangen mehr Parameter, aber es noch druckt es richtig aus.
console.log("A parameter", "A parameter", "A parameter", "A parameter", "A parameter", "A parameter", "A parameter", "A parameter", "A parameter", "A parameter", "A parameter", "A parameter", "A parameter", "A parameter", "A parameter", "A parameter", "A parameter", "A parameter", "A parameter", "A parameter", "A parameter", "A parameter", "A parameter", "A parameter", "A parameter", "A parameter", "A parameter", "A parameter", "A parameter", "A parameter", "A parameter");
Wie kann ich eine "unendlich" parameter Funktion nur so ein?
InformationsquelleAutor der Frage user824294 | 2012-02-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Funktionen kann der Zugriff auf ein array-artiges Objekt mit dem Namen
arguments
enthält alle Argumente, die Sie erhalten- Und Sie können auch Umgekehrt Konvertierung (call-eine Funktion, die eine Liste von Argumenten) mit der apply-Methode:
Einige wichtige Punkte zu beachten:
arguments
ist nicht eine tatsächliche array und es hat keiner von den üblichen array-Methoden (schneiden, join, etc.). Sie können konvertieren Sie es in ein array mit der folgenden Zeile:Scheibe ist auch nützlich, wenn Sie wollen, dass Ihr array enthält nur die nicht benannten Argumente, die empfangen wurden:
Nicht alle browser verarbeiten kann eine beliebig große Anzahl Funktions-Parameter. Letzte mal getestet habe ich diese in Chrome und IE gab es einen stackoverflow nach einigen 200.000 Argumente. Wenn Ihre Funktion erhalten können eine beliebig große Anzahl von Argumenten, prüfen, Verpacken all diese Argumente, die in einem regulären array statt.
Diese
/**/
Kommentare angezeigt, die in die Argumente-Listen für meine Beispiele sind nicht zwingend erforderlich. Sie sind nur eine Codierung eine Konvention, die ich verwenden, um daneben meine variadischen Funktionen und unterscheiden Sie von normalen Funktionen.InformationsquelleAutor der Antwort hugomg
Den modernen Weg dies zu tun ist mit rest-Parameter:
Mithilfe der
...args
syntax, alle Parameter sind gespeichert in einem array namensargs
.Außer der Internet Explorer alle Browser schon Schiff diese Funktion in Ihrer neuesten Fassung.
Fiddle: https://jsfiddle.net/Lbf0stst/
InformationsquelleAutor der Antwort Felix Edelmann
Können Sie mit dem arguments-array: jsfiddle.net/kUnJ2/
InformationsquelleAutor der Antwort DynasteN