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
2016-12-06 11:56:18930Durchsuche

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 ist von feste Länge von.

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 Beispiel eines Iterators 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, müssen Sie Folgendes tun: kann nur verwendet werden Auf die lokale Variablenbindungsmethode kann von der inneren Ebene aus zugegriffen werden. Das obige Beispiel kann 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


umgewandelt werden
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