Les arguments s'opposent
Dans le code de la fonction, des arguments d'objets spéciaux sont utilisés, les développeurs peuvent y accéder sans indiquer explicitement les noms de paramètres.
Par exemple, dans la fonction sayshi (), le premier paramètre est le message. Cette valeur est également accessible avec des arguments [0], c'est-à-dire la valeur du premier paramètre (le premier paramètre est en position 0, le deuxième paramètre est en position 1, et ainsi de suite).
Par conséquent, vous pouvez remplacer la fonction sans nommer explicitement les paramètres:
fonction sayshi () {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 et vous référer aux arguments d'attribut.Length.
Le code suivant sortira le nombre de paramètres utilisés pour chaque appel à la fonction:
fonction howManyArgs () {alert (arguments.length);} howManyargs ("String", 45); howManyargs (); howManyargs (12);Le code ci-dessus affichera "2", "0" et "1" à son tour.
Remarque: Contrairement à d'autres langages de programmation, ECMascript ne vérifie pas que le nombre de paramètres transmis à une fonction est égal au nombre de paramètres définis par la fonction. Les fonctions définies par les développeurs peuvent accepter n'importe quel nombre de paramètres (selon la documentation de NetScape, jusqu'à 255) sans lancer d'erreurs. Tous les paramètres manquants seront transmis à la fonction non définie et les fonctions redondantes seront ignorées.
Simuler la surcharge de la fonction
Utilisez l'objet Arguments pour déterminer le nombre de paramètres transmis à la fonction, puis simuler la surcharge de la fonction:
fonction 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 pour retourner leur somme. Ainsi, Doadd (10) sort "15", tandis que Doadd (40, 20) sortit "60".
Bien qu'il ne soit pas aussi bon que la surcharge, il suffit d'éviter cette limitation d'Ecmascript.