Heim >Web-Frontend >js-Tutorial >JavaScript verwendet Argumente, um Parameter variabler Länge zu implementieren
Erklärung der Javascript-Argumente, Realisierung von Parametern variabler Länge.
In C# gibt es Parameter mit variabler Länge params[], aber wie implementiert man solche variablen Parameter in js?
1. Parameter variabler Länge
Argumente sind eine sehr gute Lösung. Ich wusste nie, dass es in Javascript so etwas gibt.
Sehen wir uns zunächst das Anwendungsszenario an, bei dem Argumente verwendet werden, um eine beliebige Anzahl von Parametern an die js-Funktion zu übergeben.
function Test() { console.log(arguments[0]); console.log(arguments[1]); console.log(arguments[2]); }; Test(1, 2, 3);
Ausgabe 1 2 3;
Natürlich können Sie auch ein Array in die Javascript-Funktion einfügen, aber es hat eine feste Länge.
2. Ändern Sie das Argumentobjekt nicht direkt.
Das Argumentobjekt ähnelt einem Array, ist aber tatsächlich kein Array kann darauf verwendet werden, aber versuchen Sie nicht, die Argumente zu ändern. Es ist leicht, Verwirrung zu stiften.
Wenn Sie es wirklich ändern möchten, können Sie den Inhalt der Argumente in ein neues Array kopieren und ihn dann im neuen Array ändern.
var args = [].slice.call(arguments);
Binden Sie Argumente mit Variablen, um einen funktionsübergreifenden Zugriff zu erreichen.
Argumentvariablen sind implizit an den Körper gebunden Beachten Sie, dass es sich bei jeder Funktion innerhalb jeder Funktion befindet.
Ein Iteratorbeispiel kann dieses Problem veranschaulichen.
function values() { //values有自己的arguments var i = 0, n = arguments.length; return { hasNext: function () { return i < n; //hasNext 有自己的arguments }, next: function () { if(i >= n) { throw new Error("已经是最后一个元素!"); } return arguments[i++]; //next 有自己的arguments } } } var it = values(1, 2, 3, 4, 5, 6, 7); console.log(it.next()); //undefined console.log(it.next()); //undefined console.log(it.next()); //undefined
Wenn Sie auf die Argumente der äußeren Funktion zugreifen möchten, können Sie nur die lokale Variablenbindung verwenden umgewandelt in
function values() { //values有自己的arguments var i = 0, n = arguments.length, ourterArgs = arguments; return { hasNext: function () { return i < n; //hasNext 有自己的arguments }, next: function () { if(i >= n) { throw new Error("已经是最后一个元素!"); } return ourterArgs[i++]; //ourterArgs 外层保存的 arguments } } } var it = values(1, 2, 3, 4, 5, 6, 7); console.log(it.next()); //1 console.log(it.next()); //2 console.log(it.next()); //3
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für alle hilfreich sein. Vielen Dank für die Unterstützung der chinesischen PHP-Website.
Weitere JavaScript-bezogene Artikel, die Argumente zur Implementierung von Parametern variabler Länge verwenden, finden Sie auf der chinesischen PHP-Website!