Heim >Web-Frontend >js-Tutorial >Argumente: arguments.callee
Zuerst gibt es eine JavaScript-Funktion
Code
<span style="font-family: 'courier new', courier;">function test(a, b, c, d) { return a + b; }</span>
Die Anzahl der tatsächlichen Parameter beim Aufruf einer Funktion in JavaScript kann gleich der Anzahl von sein Die formalen Parameter der aufgerufenen Funktion stimmen nicht überein. Die Anforderungen sind nicht so streng wie bei Java, da die Parameter in ECMAScript intern durch ein Array dargestellt werden und die Funktion beim Aufruf immer dieses Array empfängt, unabhängig davon, welche Parameter darin enthalten sind Das Array spielt keine Rolle, auch wenn kein Element
Js-Code
<span style="font-family: 'courier new', courier;">function test(a, b, c, d) { return a + b; }
console.log(test(10, 20));54bdf357c58b8a65c66d7c19c8e4d114 vorhanden ist 🎜>
Ein solcher Code meldet keinen Fehler in JavaScript. Gleichzeitig können wir in JavaScript die Anzahl der tatsächlichen Parameter und formalen Parameter durch den folgenden Code abrufen Js-Code
<span style="font-family: 'courier new', courier;">function test(a, b, c, d) { console.log(test.length);//这里获得的是形参的个数 console.log(arguments.length);//这里获得的是实参的个数,这段代码必须放在函数内部 }console.log(test(10, 20));54bdf357c58b8a65c66d7c19c8e4d114 Es gibt auch ein ähnliches Objekt namens arguments.calee, was normalerweise für rekursive Aufrufe verwendet wirdJs-Code
<span style="font-family: 'courier new', courier;">function test2(num) { if(num <= 1) return 1; else return num*arguments.callee(num-1); } console.log(test2(5));</span>Wenn Sie arguments.callee(num-1) in test2(num-1) ändern, wird ein Fehler im gemeldet folgender AufrufJs-Code
<span style="font-family: 'courier new', courier;">var F = test2; test2 = null; console.log(F(5));</span>