arguments

Sommaire

Edit section

Un tableau semblable à l'objet correspondant aux  arguments passés à une fonction.

Variable de la portée de fonction
Implémenté dans JavaScript 1.1
Version ECMA: ECMA-262

Description

Edit section

L'objet arguments est une variable locale disponible dans toutes les fonctions; arguments comme une propriété de Function ne peuvent plus être utilisés.

Vous pouvez vous référer aux arguments d'une fonction au sein de la fonction en utilisant l'objet arguments. Cet objet contient une entrée pour chaque argument passé à une fonction, le premier indice entré démarre à 0. Par exemple, si la fonction est passée avec trois arguments, vous pouvez vous référer à ce qui suit:

arguments[0]
arguments[1]
arguments[2]

Les argument peuvent être mis en:

arguments[1] = 'new value';
Note: Le moteur JavaScript SpiderMonkey a un bug bug dans lequel les arguments[n] ne peuvent pas être réglés si n est plus grand que le nombre de paramètres formels ou actuels. Ceci a été réglé dans le moteur JavaScript 1.6.

L'objet arguments n'est pas un tableau. Il est semblable à un tableau, mais ne dispose pas de propriétés tableau, sauf la length(longueur). Par exemple, il n'a pas la méthode pop. Cependant, il peut être converti en un tableau réel:

 var args = Array.prototype.slice.call(arguments);

L'objet arguments est disponible uniquement dans un corps de fonction. La tentative d'accéder à l'objet arguments en dehors d'une déclaration de fonction aboutit à une erreur.

Vous pouvez utiliser l'objet arguments si vous appelez une fonction avec plus d'arguments qu'il ne déclare formellement pour accepter. Cette technique est très utile pour les fonctions qui peuvent être transmis d'un nombre variable d'arguments. Vous pouvez utiliser arguments.length pour déterminer le nombre d'arguments passés à la fonction, et ensuite traiter chaque argument en utilisant l'objet arguments . (Pour déterminer le nombre d'arguments déclarés quand une fonction a été définie, utilisez la propriété Function.length.)

Propriétés

Edit section

arguments.callee
Référence à la fonction en cours d'exécution.
arguments.caller
Obsolète
Référence à la fonction qui a appelé la fonction en cours d'exécution.
arguments.length
Référence au nombre d'arguments passés à la fonction.

Exemples

Edit section

Exemple: Définition d'une fonction qui concatène plusieurs chaînes

Edit section

Cet exemple définit  une fonction qui concatène plusieurs chaînes. Le seul argument formel pour la fonction est une chaîne qui spécifie les caractères qui séparent les éléments à concaténer. La fonction est définie comme suit:

function myConcat(separator) {
  var result = "";

  // iterate through non-separator arguments
  for (var i = 1; i < arguments.length; i++)
    result += arguments[i] + separator;

  return result;
}

Vous pouvez passer n'importe quel nombre d'arguments à cette fonction, et il créé une liste utilisant chaque argument comme un élément de la liste.

// returns "red, orange, blue, "
myConcat(", ", "red", "orange", "blue");

// returns "elephant; giraffe; lion; cheetah; "
myConcat("; ", "elephant", "giraffe", "lion", "cheetah");

// returns "sage. basil. oregano. pepper. parsley. "
myConcat(". ", "sage", "basil", "oregano", "pepper", "parsley");

Exemple: Définition d'une fonction qui créé des listes HTML

Edit section

Cet exemple définit une fonction qui créé une chaîne contenant HTML pour une liste. Le seul argument formel est une chaîne qui est "u" si la liste est d'être non-ordonnée  (à puces), ou "o" si la liste est d'être ordonnée (numérotée). La fonction est définie comme suit:

function list(type) {
  var result = "<" + type + "l>";

  // iterate through non-type arguments
  for (var i = 1; i < arguments.length; i++)
    result += "<li>" + arguments[i] + "</li>";

  result += "</" + type + "l>"; // end list

  return result;
}

Vous pouvez passer n'importe quel argument à cette fonction, et elle ajoute cet argument comme un élément de la liste de type indiqué. Par exemple:

var listHTML = list("u", "One", "Two", "Three");
// listHTML is "<ul><li>One</li><li>Two</li><li>Three</li></ul>"

Étiquettes et contributeurs liés au document

Contributeurs ayant participé à cette page : daniel35310
Dernière mise à jour par : daniel35310,