Heim  >  Artikel  >  Web-Frontend  >  JavaScript verwendet Argumente, um Parameter variabler Länge zu implementieren

JavaScript verwendet Argumente, um Parameter variabler Länge zu implementieren

高洛峰
高洛峰Original
2017-01-04 17:28:491081Durchsuche

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!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn