Heim  >  Artikel  >  Web-Frontend  >  Einführung in Argumente und Überladung in Javascript_Javascript-Kenntnissen

Einführung in Argumente und Überladung in Javascript_Javascript-Kenntnissen

WBOY
WBOYOriginal
2016-05-16 16:09:131188Durchsuche

Aufgrund eines Sprachdesignfehlers können Argumente als Array behandelt werden.

Code kopieren Der Code lautet wie folgt:

Funktion Null () {
console.log(arguments[0]);
}

Es wird auch
geben
Code kopieren Der Code lautet wie folgt:

Funktion Null () {
for(var i=0;i console.log(arguments[i]);
}
}

Es macht sich die Tatsache zunutze, dass Javascript Javasc ist

Die Variable arguments stellt hier eine Array-ähnliche Schnittstelle für tatsächliche Parameter bereit. Aufgrund der variablen Parameter der Argumente können wir diese interessante Sache verwenden, um einige interessante Dinge zu tun, wie zum Beispiel Überladung.

Javscript neu laden

Es gibt eine Frage zur Überlastung von Stackvoerflow, also habe ich die erste Antwort

Code kopieren Der Code lautet wie folgt:

if (typeof friends === „undefiniert“) {

} sonst {

}

Eine andere Antwort ist

Code kopieren Der Code lautet wie folgt:

switch (arguments.length) {
Fall 0:
//Wahrscheinlich Fehler
Pause;
Fall 1:
//Tu etwas
Pause;
Fall 2:
Standard: //Fall Through, um die Groß-/Kleinschreibung weiterer Parameter zu behandeln
//Mach etwas anderes
Pause;
}

Es ist nur so, dass diese Methode wirklich nicht gut aussieht. Wird unsere Funktion am Ende so aussehen?

Code kopieren Der Code lautet wie folgt:

Funktion null1 (){
console.log('arguments 1')
};
Funktion null2 (){
console.log('arguments 2')
};
Funktion Null () {
if(arguments.length == 1){
Zero1();
} else{
Zero2();
}
}

Es sieht wirklich überhaupt nicht gut aus. Selbst wenn wir das Gehäuse wechseln, wird es auch nicht gut aussehen.

Javascript-Argumente sind kein Array

arguments ist nicht immer ein Array, wie wir sehen, manchmal ist es vielleicht auch nicht so.

Code kopieren Der Code lautet wie folgt:

Funktion hello(){
console.log(typeof arguments);
}

Der Typ der Argumente ist hier ein Objekt, obwohl der Array-Typ ebenfalls ein Objekt ist, obwohl wir ihn in ein Array
konvertieren können
Code kopieren Der Code lautet wie folgt:

var args = Array.prototype.slice.call(arguments);

Dies zeigt aber auch, dass es sich nicht um ein Array handelt. Es hat nur das einzige Attribut von Array, nämlich die Länge. Darüber hinaus

arguments.callee

Referenz auf die aktuell ausgeführte Funktion.

arguments.caller

Referenz auf die Funktion, die die aktuell ausgeführte Funktion aufgerufen hat.

arguments.length

Referenz auf die Anzahl der an die Funktion übergebenen Argumente.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn