Argumente Objekt
Im Funktionscode werden spezielle Objektargumente verwendet. Entwickler können auf sie zugreifen, ohne ausdrücklich auf Parameternamen hinzuweisen.
In der Funktion Sayshi () ist beispielsweise der erste Parameter die Nachricht. Dieser Wert kann auch mit Argumenten zugegriffen werden [0], dh auf den Wert des ersten Parameters (der erste Parameter befindet sich an Position 0, der zweite Parameter befindet sich an Position 1 usw.).
Daher können Sie die Funktion überschreiben, ohne die Parameter explizit zu benennen:
Funktion Sayshi () {if (Argumente [0] == "Bye") {return;} alert (Argumente [0]);};Anzahl der Erkennungsparameter
Sie können das Argumenteobjekt auch verwenden, um die Anzahl der Parameter der Funktion zu erkennen und auf die Attributargumente zu verweisen.
Der folgende Code gibt die Anzahl der für jeden Aufruf zur Funktion verwendeten Parameter aus:
Funktion Howmanyargs () {alert (Argumente.length);} Howmanyargs ("String", 45); Howmanyargs (); Howmanyargs (12);In dem obigen Code werden "2", "0" und "1" wiederum angezeigt.
HINWEIS: Im Gegensatz zu anderen Programmiersprachen überprüft ECMAScript nicht, dass die Anzahl der an eine Funktion übergebenen Parametern der Anzahl der durch die Funktion definierten Parameter entspricht. Von Entwicklern definierte Funktionen können eine beliebige Anzahl von Parametern (gemäß der Dokumentation von Netscape bis zu 255) akzeptieren, ohne Fehler zu werfen. Fehlende Parameter werden als undefiniert an die Funktion übergeben, und die redundanten Funktionen werden ignoriert.
Simulation der Funktion Überladung
Verwenden Sie das Argumenteobjekt, um die Anzahl der an die Funktion übergebenen Parametern zu bestimmen, und simulieren Sie dann die Funktion Überladung:
Funktion doadd () {if (Argumente.length == 1) {alert (Argumente [0] + 5);} else if (Argumente.length == 2) {alert (Argumente [0] + Argumente [1]);}}Doadd (10); // Ausgabe "15"
Doadd (40, 20); // Ausgabe "60"
Wenn es nur einen Parameter gibt, fügt die Funktion doadd () dem Parameter 5 hinzu. Wenn es zwei Parameter gibt, werden die beiden Parameter hinzugefügt, um ihre Summe zurückzugeben. Doadd (10) gibt also "15" aus, während Doadd (40, 20) "60" ausgibt.
Obwohl nicht so gut wie Überlastung, reicht es aus, diese Einschränkung von ECMascript zu vermeiden.