Alles in js ist ein Objekt, auch Funktionen sind Objekte. Der Funktionsname ist eigentlich eine Variable, die auf das durch die Funktion definierte Objekt verweist.
1. Was sind Argumente?
Die Argumente in diesem Funktionskörper sind tatsächlich ein integriertes Array-ähnliches Objekt der Funktion. Sie können das [i] und die Länge des Arrays verwenden.
2. Was ist die Funktion?
js-Syntax unterstützt keine Überladung! Allerdings kann das Arguments-Objekt verwendet werden, um den Überladungseffekt zu simulieren.
Argumente-Objekt: Innerhalb des Funktionsobjekts wird ein automatisch erstelltes Array-ähnliches Objekt speziell für den Empfang aller Parameterwerte erstellt.
arguments[i]: Ruft den Parameterwert ab, der mit dem Index i übergeben wird.
arguments.length: Ruft die Anzahl der übergebenen Parameter ab!
Überladung:
Im Programm können mehrere Funktionen mit demselben Funktionsnamen und unterschiedlichen Parameterlisten definiert werden
Der Aufrufer muss die Parameter nicht unterscheiden
Bei der Ausführung bestimmt das Programm anhand der Anzahl der übergebenen Parameter automatisch, welche Funktion ausgeführt werden soll.
Das Beispiel sieht wie folgt aus:
// 1、如果用户传入一个参数,求平方 function sum(a){ console.log(a*a); } //如果用户传入两个参数,就求和 function sum(a,b){ console.log(a+b); } sum(4); //? sum(4,5); //?
Im obigen Beispiel besteht die ursprüngliche Absicht darin, die Funktion sum() mit demselben Namen je nach Unterschied unterschiedlichen Ergebnissen ausgeben zu lassen Parameter, aber sum ist ein Funktionsname und im Wesentlichen eine Variable.
Der zweite überschreibt den ersten, daher lautet die korrekte Ausgabeantwort oben: NaN,9. Das ist also offensichtlich nicht der Fall möglich.
Es wäre viel einfacher, wenn Sie Argumente verwenden würden.
Die folgenden zwei Beispiele:
//2、 function calc(){ //如果用户传入一个参数,求平方 if(arguments.length==1){ console.log(arguments[0]*arguments[0]); }else if(arguments.length==2){ //如果用户传入两个参数,就求和 console.log(arguments[0]+arguments[1]); } } calc(4); //16 calc(4,5); //9 /*3、无论用户传入几个数字,都可以求和*/ function add(){ //arguments:[] //遍历arguments中每个元素,并累加 for(var i=0,sum=0;i<arguments.length;sum+=arguments[i++]); return sum;//返回和 } console.log(add(1,2,3)); //6 console.log(add(1,2,3,4,5,6)); //21
Dies ist der Effekt der Argumentüberladung durch JS. Ein einfaches Verständnis besteht darin, dass eine Funktion wiederverwendet wird.
arguments.length wird durch die tatsächlichen Parameter bestimmt, also die Anzahl der Parameter im Funktionsaufruf!
Das Obige ist das vom Herausgeber eingeführte Wissen über das Argumentobjekt in Javascript. Ich hoffe, es wird Ihnen hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht rechtzeitig. Ich möchte mich auch bei Ihnen allen für Ihre Unterstützung der chinesischen PHP-Website bedanken!
Weitere Artikel zum Argumentobjekt in Javascript finden Sie auf der chinesischen PHP-Website!