Heim >Web-Frontend >js-Tutorial >Verständnis von Javascript-Argumenten, Objekten und Funktionsparametern
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最后输出undefinedOriginallink: http://caibaojian.com/js-arguments.html
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 simulierenVerwenden 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.htmlObwohl es nicht so gut ist wie eine Überladung, reicht es aus, diese Einschränkung von ECMAScript zu vermeiden.