In vielen objektorientierten Hochsprachen kommt es zu einer Methodenüberladung. Und Javascript kennt kein Konzept der Methodenüberladung. Aber wir können den Parameter arguments verwenden, um ihn als Überladung der Funktion
zu tarnen
Werfen wir vor der Simulation einen Blick auf den Code:
//Funktionen, die keine formalen Parameter auf der Oberfläche deklarieren
Funktion fun() {
alarm("Beispielcode");
}
fun("Xiao Ming", 100, true);//Ich habe drei tatsächliche Parameter geschrieben
Aus den Ergebnissen sehen wir, dass wir beim Aufruf der Methode auch dann tatsächliche Parameter schreiben können, wenn wir bei der Deklaration der Funktion keine formalen Parameter definieren. (Eigentlich werden formale Parameter geschrieben, damit Programmierer sie beim Aufrufen von Funktionen sehen können)
Können wir die tatsächlichen Parameter im Code erhalten? Die Antwort ist ja: Bitte sehen Sie sich den Code an:
//Funktionen, die keine formalen Parameter auf der Oberfläche deklarieren
Funktion fun() {
alarm(arguments[0]);//Den Wert des ersten tatsächlichen Parameters abrufen.
alarm(arguments[1]);//Den Wert des zweiten tatsächlichen Parameters abrufen.
alarm(arguments[2]);//Den Wert des dritten tatsächlichen Parameters abrufen.
alarm(arguments.length);//Erhalten Sie die tatsächliche Anzahl von Parametern.
alarm("Beispielcode");
}
fun("Xiao Ming", 100, true);//Ich habe drei tatsächliche Parameter geschrieben
Durch den Code können wir erkennen, dass Argumente (interne Eigenschaften) selbst ein Array sind und seine Funktion darin besteht, die tatsächlichen Parameter der Methode zu speichern.
Mit den oben genannten Wissenspunkten erhalten Sie Ideen zur Überlastung von Simulationsmethoden. Wir können anhand der Anzahl der tatsächlichen Parameter eine Beurteilung treffen, um verschiedene Logikcodes auszuführen. Der einfache Code lautet wie folgt:
Funktion fun() {
if (arguments.length == 0) {
alarm("Code ohne tatsächliche Parameter ausführen");
}
sonst if(arguments.length==1)
{
alarm("Führen Sie den in einem tatsächlichen Parameter übergebenen Code aus");
}
sonst if(arguments.length==2)
{
alarm("Führen Sie den in zwei tatsächlichen Parametern übergebenen Code aus");
}
}
Spaß();
Spaß("Xiao Ming");
Spaß("Xiao Ming", "Xiao Hua");