Heim  >  Artikel  >  Web-Frontend  >  Argumente: arguments.callee

Argumente: arguments.callee

巴扎黑
巴扎黑Original
2016-11-25 09:38:551060Durchsuche

Zuerst gibt es eine JavaScript-Funktion

Code

<span style="font-family: &#39;courier new&#39;, 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: &#39;courier new&#39;, 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: &#39;courier new&#39;, 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 wird

Js-Code

<span style="font-family: &#39;courier new&#39;, 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 Aufruf

Js-Code

<span style="font-family: &#39;courier new&#39;, courier;">var F = test2;  
test2 = null;  
console.log(F(5));</span>


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