Heim  >  Artikel  >  Web-Frontend  >  Verständnis von Javascript-Argumenten, Objekten und Funktionsparametern

Verständnis von Javascript-Argumenten, Objekten und Funktionsparametern

高洛峰
高洛峰Original
2016-12-14 09:32:161045Durchsuche

Das Objekt viajavascript arguments wird hauptsächlich im Abschnitt über JavaScript-Funktionen erlernt.

3: Argumentobjekt

Tatsächlich kann der Funktionskörper die übergebenen Parameter über das Argumentobjekt empfangen.

function box(){
return arguments[0] + '|'+arguments[1]; //得到每次参数的值
}

alert(box('caibaojian',24));

Das Längenattribut des Argumentobjekts kann die Anzahl der Parameter abrufen.

function box(){
return arguments.length; 
}

alert(box(1,2,3,4,5)); 5

Heute werde ich hauptsächlich über den Verwendungsprozess sprechen. Ich werde ein Beispiel verwenden, um den Unterschied zwischen dem Zugriff des Argumentobjekts auf die Parameter der Funktion und dem Zeitpunkt, an dem der Zeilenparameter die Parameter definiert, zu veranschaulichen 🎜>

//code from http://caibaojian.com/js-arguments.html
function func(a,b){
b=30;
arguments[0] = arguments[1]
return a;
}
function(1,2); 30
function(1); undefined //由于函数内arguments形参改变了,a=arguments[1],arguments[1]未定义,所以a最后输出undefined
Originallink: http://caibaojian.com/js-arguments.html


über Erkennungsparameternummer Originaltext von: http://caibaojian.com/js -arguments.html

Sie können das Arguments-Objekt auch verwenden, um die Anzahl der Parameter der Funktion zu ermitteln, indem Sie einfach auf das Attribut arguments.length verweisen.

Der folgende Code gibt die Anzahl der in jedem Funktionsaufruf verwendeten Parameter aus:

function howManyArgs() {
  alert(arguments.length);
}

howManyArgs("string", 45);
howManyArgs();
howManyArgs(12);
über den obigen Code werden nacheinander „2“, „0“ und „1“ angezeigt.

Hinweis: Im Gegensatz zu anderen Programmiersprachen überprüft ECMAScript nicht, ob die Anzahl der an eine Funktion übergebenen Parameter gleich der Anzahl der von der Funktion definierten Parameter ist. Vom Entwickler definierte Funktionen können eine beliebige Anzahl von Argumenten akzeptieren (laut Netscape-Dokumentation bis zu 255), ohne Fehler auszulösen. Alle fehlenden Argumente werden als undefiniert an die Funktion übergeben und zusätzliche Funktionen werden ignoriert.

Funktionsüberladung simulieren

Verwenden Sie das Argumentobjekt, um die Anzahl der Parameter zu bestimmen, die an die Funktion übergeben werden, um eine Funktionsüberladung zu simulieren:

function doAdd() {
  if(arguments.length == 1) {
    alert(arguments[0] + 5);
  } else if(arguments.length == 2) {
    alert(arguments[0] + arguments[1]);
  }
}

doAdd(10);	//输出 "15"
doAdd(40, 20);	//输出 "60"
via, wenn nur ein Parameter vorhanden ist , fügt die Funktion doAdd() dem Parameter 5 hinzu. Wenn zwei Parameter vorhanden sind, werden die beiden Parameter addiert und ihre Summe zurückgegeben. DoAdd(10) gibt also „15“ aus, während doAdd(40, 20) „60“ ausgibt. Originaltext von: http://caibaojian.com/js-arguments.html

Obwohl es nicht so gut ist wie eine Überladung, reicht es aus, diese Einschränkung von ECMAScript zu vermeiden.


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
Vorheriger Artikel:Argumente in JavascriptNächster Artikel:Argumente in Javascript