mozilla
Vos résultats de recherche

    arguments

    L'objet arguments est un objet, semblable à un tableau, correspondant aux arguments passés à une fonction.

    Note du traducteur : «Variable ayant la fonction pour portée» correspond à la traduction de «Variable of the function scope» qu'il serait incorrect de traduire par «Variable de la portée de la fonction» car la portée de la fonction est la portée dans laquelle on peut appeler la fonction. Une variable locale de la fonction pourrait quant à elle avoir une portée strictement incluse dans le corps de la fonction (variable définie dans un bloc de la fonction même si cette subtilité n'existe pas en Javascript). Toute suggestion pour éviter cette tournure un peu longue sans altérer le sens est la bienvenue.

    Syntaxe

    arguments

    Description

    L'objet arguments est une variable locale disponible dans toutes les fonctions ; arguments en tant que propriété d'un objet de type Function ne peut plus être utilisé.

    Vous pouvez accéder aux arguments d'une fonction à l'intérieur de celle-ci en utilisant l'objet arguments. Cet objet contient une entrée pour chaque argument passé à la fonction, l'indice de la première entrée commençant à 0. Par exemple, si une fonction est appelée avec trois arguments, on accède à ceux-ci comme suit :

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

    Les arguments peuvent aussi être modifiés :

    arguments[1] = 'nouvelle valeur';

    L'objet arguments n'est pas un Array. Il est similaire à un Array, mais il n'a pas les propriétés d'un Array, exceptée la propriété length. Par exemple, il n'a pas la méthode pop. Néanmoins, il peut être converti en un vrai objet de type Array :

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

    Il est déconseillé d'utiliser slice sur les arguments car cela peut empêcher certaines optimisations des moteurs JavaScripts. Pour ce scénario, on peut par exemple construire un nouveau tableau en parcourant l'objet arguments.

    Si les méthodes génériques d'Array sont disponibles, on peut utiliser ce qui suit à la place :

    var args = Array.slice(arguments);

    L'objet arguments est disponible uniquement dans le corps d'une fonction. Tenter d'accéder à l'objet arguments en dehors de la déclaration d'une fonction renvoie une erreur.

    Vous pouvez utiliser l'objet arguments si vous appelez une fonction avec plus de paramètres que ceux déclarés dans sa signature. Cette technique est utile pour les fonctions qui acceptent un nombre variable d'arguments. Vous pouvez utiliser arguments.length pour déterminer le nombre de paramètres passés à la fonction, puis utiliser chaque argument en utilisant l'objet arguments. (Pour déterminer le nombre d'arguments déclarés à la définition de la fonction, il faut utiliser la propriété Function.length.)

    Propriétés

    arguments.callee
    Référence à la fonction en cours d'exécution.
    arguments.caller
    Référence à la fonction appelante.
    arguments.length
    Référence au nombre d'arguments passés à la fonction.

    Exemples

    Définir une fonction de concaténation d'un nombre variable de chaînes

    Cet exemple définit une fonction qui concatène un nombre variable de chaînes. Le seul argument formel de la fonction est une chaîne spécifiant un séparateur inséré entre les chaînes concaténées. La fonction est définie comme suit :

    function myConcat(separateur) {
      var args = Array.prototype.slice.call(arguments, 1);
      return args.join(separateur);
    }

    Vous pouvez passer n'importe quel nombre d'arguments à cette fonction ; elle créera une liste en utilisant chaque argument comme un élément de la liste.

    // renvoie "rouge, orange, bleu"
    myConcat(", ", "rouge", "orange", "bleu");
    
    // renvoie "éléphant ; giraffe ; lion ; guépard"
    myConcat(" ; ", "elephant", "giraffe", "lion", "guépard");
    

    Définir une fonction de création de listes HTML

    Cet exemple définit une fonction qui crée des chaînes définissant des listes HTML. Le seul argument formel de la fonction est une chaîne pouvant valoir "u" (unordered), si la liste doit être sans numérotation (avec des puces), ou "o" (ordered), si la liste doit être numérotée. La fonction est définie comme suit :

    function liste(type) {
      var resultat = "<" + type + "l><li>";
      var args = Array.prototype.slice.call(arguments, 1);
      resultat += args.join("</li><li>");
      resultat += "</li></" + type + "l>"; // end list
    
      return resultat;
    }

    Vous pouvez passer n'importe quel nombre d'arguments à cette fonction ; elle créera une liste du type indiqué en ajoutant chaque argument comme élément dans la liste. Exemple :

    var listeHTML = liste("u", "Un", "Deux", "Trois");
    
    /* listeHTML vaut  :
    
    "<ul><li>Un</li><li>Deux</li><li>Trois</li></ul>"
    
    */

    Spécifications

    Spécification Statut Commentaires
    Première édition d'ECMAScript. Standard Définition initiale. Implémentée par JavaScript 1.1
    ECMAScript 5.1 (ECMA-262)
    La définition de 'Arguments Object' dans cette spécification.
    Standard  
    ECMAScript 6 (ECMA-262)
    La définition de 'Arguments Exotic Objects' dans cette spécification.
    En cours de validation comme recommandation  

    Compatibilité des navigateurs

    Fonctionnalité Chrome Firefox (Gecko) Internet Explorer Opera Safari
    Support simple (Oui) (Oui) (Oui) (Oui) (Oui)
    Fonctionnalité Android Chrome pour Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
    Support simple (Oui) (Oui) (Oui) (Oui) (Oui) (Oui)

    Voir aussi

    Étiquettes et contributeurs liés au document

    Contributors to this page: Laurent_Lyaudet, SphinxKnight, fscholz, teoli
    Dernière mise à jour par : SphinxKnight,
    Masquer la barre latérale