Objet arguments ECMAScript
- Page précédente Aperçu de la fonction
- Page suivante Objet Function
l'objet arguments
Dans le code de la fonction, les développeurs utilisent un objet spécial appelé arguments,无需明确指出参数名,就能访问它们。
Par exemple, dans la fonction sayHi(), le premier paramètre est message. Vous pouvez également accéder à cette valeur en utilisant arguments[0], c'est-à-dire la valeur du premier paramètre (le premier paramètre est à la position 0, le deuxième paramètre est à la position 1, et ainsi de suite).
Par conséquent, il n'est pas nécessaire de nommer explicitement les paramètres pour réécrire la fonction :
function sayHi() { if (arguments[0] == "bye") { return; } alert(arguments[0]); }
Détection du nombre de paramètres
Vous pouvez également utiliser l'objet arguments pour détecter le nombre de paramètres d'une fonction, en utilisant l'attribut arguments.length.
Le code suivant affichera le nombre de paramètres utilisés à chaque appel de la fonction :
function howManyArgs() { alert(arguments.length); } howManyArgs("string", 45); howManyArgs(); howManyArgs(12);
Le code suivant affichera successivement "2", "0" et "1".
Remarque :Contrairement aux autres langages de programmation, ECMAScript ne vérifie pas si le nombre de paramètres passés à la fonction est égal au nombre de paramètres définis dans la fonction. Toutes les fonctions définies par le développeur peuvent accepter un nombre quelconque de paramètres (selon la documentation de Netscape, jusqu'à 255), sans générer d'erreur. Toute omission de paramètres est transmise à la fonction sous forme de undefined, et les paramètres en excès sont ignorés.
Surcharge de fonction simulée
Utilisez l'objet arguments pour déterminer le nombre de paramètres passés à la fonction, ce qui permet de simuler le 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); // Affiche "15" doAdd(40, 20); // Affiche "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, ils seront additionnés et leur somme sera retournée. Donc, doAdd(10) affiche "15", et doAdd(40, 20) affiche "60".
Bien que ce ne soit pas aussi bon que le surcharge, cela suffit à contourner cette limitation de ECMAScript.
- Page précédente Aperçu de la fonction
- Page suivante Objet Function