먼저 자바스크립트 함수가 있습니다.
코드
<span style="font-family: 'courier new', courier;">function test(a, b, c, d) { return a + b; }</span>
자바스크립트에서 함수를 호출할 때 실제 매개변수의 개수는 코드의 개수와 같을 수 있습니다. 호출된 함수의 형식 매개변수 번호 불일치, 요구사항은 Java만큼 엄격하지 않습니다. 왜냐하면 ECMAScript의 매개변수는 내부적으로 배열로 표시되고 함수가 호출될 때 어떤 매개변수가 포함되어 있는지에 관계없이 항상 이 배열을 수신하기 때문입니다. 배열.
Js 코드
<span style="font-family: 'courier new', courier;">function test(a, b, c, d) { return a + b; }
console.log(test(10, 20));54bdf357c58b8a65c66d7c19c8e4d114 🎜>
이러한 코드는 JavaScript에서 오류를 보고하지 않습니다. 동시에 JavaScript에서는 다음 코드를 통해 실제 매개변수와 형식 매개변수의 수를 얻을 수 있습니다. Js 코드
<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 args.calee라는 유사한 객체도 있습니다. 일반적으로 재귀 호출에 사용됩니다Js 코드
<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>args.callee(num-1)을 test2(num-1)로 변경하면 오류가 보고됩니다. 다음 통화Js 코드
<span style="font-family: 'courier new', courier;">var F = test2; test2 = null; console.log(F(5));</span>