Dans de nombreux langages orientés objet de haut niveau, il existe une surcharge de méthodes. Et javascript n’a aucune notion de surcharge de méthode. Mais on peut utiliser le paramètre arguments pour le déguiser en surcharge de la fonction
Regardons le code avant de simuler :
//Fonctions qui ne déclarent pas de paramètres formels sur la surface
fonction fun() {
alert("Exemple de code");
>
fun("Xiao Ming", 100, true);//J'ai écrit trois paramètres réels
D’après les résultats, nous voyons que même si nous ne définissons pas de paramètres formels lors de la déclaration de la fonction, nous pouvons toujours écrire des paramètres réels lors de l’appel de la méthode. (En fait, les paramètres formels sont écrits pour que les programmeurs puissent les voir lors de l'appel de fonctions)
Pouvons-nous obtenir les paramètres réels dans le code ? La réponse est oui : veuillez consulter le code :
//Fonctions qui ne déclarent pas de paramètres formels sur la surface
fonction fun() {
alert(arguments[0]);//Obtenir la valeur du premier paramètre réel.
alert(arguments[1]);//Obtenir la valeur du deuxième paramètre réel.
alert(arguments[2]);//Obtenir la valeur du troisième paramètre réel.
alert(arguments.length);//Obtenir le nombre réel de paramètres.
alert("Exemple de code");
>
fun("Xiao Ming", 100, true);//J'ai écrit trois paramètres réels
Grâce au code, nous pouvons savoir que les arguments (propriétés internes) sont eux-mêmes un tableau et que leur fonction est de stocker les paramètres réels de la méthode.
Avec les points de connaissances ci-dessus, vous aurez des idées pour surcharger les méthodes de simulation. Nous pouvons porter un jugement basé sur le nombre de paramètres réels pour exécuter différents codes logiques. Le code simple est le suivant :
fonction fun() {
si (arguments.length == 0) {
alert("Exécuter le code sans paramètres réels");
>
sinon if(arguments.length==1)
{
alert("Exécuter le code passé dans un paramètre réel");
>
sinon if(arguments.length==2)
{
alert("Exécuter le code passé dans deux paramètres réels");
>
>
amusant();
amusant("Xiao Ming");
amusant("Xiao Ming", "Xiao Hua");