Maison >interface Web >js tutoriel >JavaScript utilise des arguments pour implémenter des paramètres de longueur variable

JavaScript utilise des arguments pour implémenter des paramètres de longueur variable

高洛峰
高洛峰original
2017-01-04 17:28:491100parcourir

Explication des arguments Javascript, réalisant des paramètres de longueur variable.

En C#, il existe des paramètres de longueur variable params[], mais en js, comment implémenter de tels paramètres variables ?

1. Les paramètres

de longueur variable sont une très bonne solution. Je n'avais jamais su que javascript avait ce truc.

Regardons d'abord le scénario d'application, en utilisant des arguments pour transmettre un nombre quelconque de paramètres à la fonction js.

function Test() {
  console.log(arguments[0]);
  console.log(arguments[1]);
  console.log(arguments[2]);
};
Test(1, 2, 3);

Sortie 1 2 3;

Bien sûr, vous pouvez aussi mettre un tableau dans la fonction javascript, mais il est de longueur fixe.

2. Ne modifiez pas directement l'objet arguments

L'objet arguments est similaire à un tableau, mais en fait ce n'est pas un tableau En utilisant la méthode d'appel, la fonction shift du tableau. peut être utilisé dessus, mais essayez de ne pas essayer de modifier les arguments. Il est facile de semer la confusion.

Si vous souhaitez vraiment le modifier, vous pouvez copier le contenu des arguments dans un nouveau tableau, puis le modifier sur le nouveau tableau.

var args = [].slice.call(arguments);

Lier les arguments avec des variables pour obtenir un accès inter-fonctions

les arguments sont implicitement liés aux variables Dans le corps de chaque fonction, notez qu'il se trouve à l'intérieur de chaque fonction.

Un exemple d'itérateur peut illustrer ce problème ;

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

Si vous souhaitez accéder aux arguments de la fonction externe, vous ne pouvez y accéder que via la liaison de variables locales dans la couche interne Visit. , l'exemple ci-dessus peut être transformé en

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

Ce qui précède est l'intégralité du contenu de cet article. J'espère qu'il sera utile à tout le monde. Merci de soutenir le site Web PHP chinois !

Pour plus d'articles sur le javascript utilisant des arguments pour implémenter des paramètres de longueur variable, veuillez faire attention au site Web PHP chinois !


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn