Maison > Article > interface Web > Exemples d'application d'objet d'arguments JavaScript_compétences Javascript
objet arguments
Dans le code de fonction, en utilisant les arguments d'objet spéciaux, les développeurs peuvent accéder aux noms de paramètres sans les nommer explicitement.
Par exemple, dans la fonction sayHi(), le premier paramètre est message. Cette valeur est également accessible avec arguments[0], qui est la valeur du premier argument (le premier argument est en position 0, le deuxième argument est en position 1, et ainsi de suite).
Ainsi, la fonction peut être réécrite sans nommer explicitement les paramètres :
function sayHi() { if (arguments[0] == "bye") { return; } alert(arguments[0]); }
Nombre de paramètres de détection
Vous pouvez également utiliser l'objet arguments pour détecter le nombre de paramètres de la fonction, il suffit de référencer la propriété arguments.length.
Le code suivant affichera le nombre de paramètres utilisés dans chaque appel de fonction :
function howManyArgs() { alert(arguments.length); } howManyArgs("string", 45); howManyArgs(); howManyArgs(12);
Le code ci-dessus affichera « 2 », « 0 » et « 1 » dans l'ordre.
Remarque : Contrairement à d'autres langages de programmation, ECMAScript ne vérifie pas si le nombre de paramètres passés à une fonction est égal au nombre de paramètres définis par la fonction. Les fonctions définies par le développeur peuvent accepter n'importe quel nombre d'arguments (jusqu'à 255, selon la documentation de Netscape) sans générer d'erreurs. Tous les arguments manquants seront transmis à la fonction comme non définis et les fonctions supplémentaires seront ignorées.
Simuler la surcharge de fonctions
Utilisez l'objet arguments pour déterminer le nombre de paramètres transmis à la fonction afin de simuler une surcharge de fonction :
function doAdd() { if(arguments.length == 1) { alert(arguments[0] + 5); } else if(arguments.length == 2) { alert(arguments[0] + arguments[1]); } }
doAdd(10); //Sortie "15"
doAdd(40, 20); //Sortie "60"
Lorsqu'il n'y a qu'un seul paramètre, la fonction doAdd() ajoute 5 au paramètre. S'il y a deux paramètres, les deux paramètres sont ajoutés et leur somme est renvoyée. Ainsi, doAdd(10) génère "15", tandis que doAdd(40, 20) génère "60".
Bien que ce ne soit pas aussi efficace qu'une surcharge, cela suffit pour contourner cette limitation d'ECMAScript.