인수 대상
기능 코드에서 특수 객체 인수가 사용되며 개발자는 매개 변수 이름을 명시 적으로 지적하지 않고도 액세스 할 수 있습니다.
예를 들어, function sayhi ()에서 첫 번째 매개 변수는 메시지입니다. 이 값은 인수 [0], 즉 첫 번째 매개 변수의 값으로 액세스 할 수 있습니다 (첫 번째 매개 변수는 위치 0에 있고, 두 번째 매개 변수는 위치 1 등).
따라서 매개 변수를 명시 적으로 명명하지 않고도 기능을 무시할 수 있습니다.
함수 sayshi () {if (arguments [0] == "bye") {return;} alert (arguments [0]);}검출 매개 변수 수
인수 객체를 사용하여 함수의 매개 변수 수를 감지하고 속성 인수를 참조하십시오.
다음 코드는 함수에 대한 각 호출에 사용 된 매개 변수 수를 출력합니다.
기능 Howmanyargs () {alert (arguments.length);} Howmanyargs ( "String", 45); Howmanyargs (); Howmanyargs (12);위의 코드는 "2", "0"및 "1"을 차례로 표시합니다.
참고 : 다른 프로그래밍 언어와 달리 ECMAScript는 함수로 전달 된 매개 변수 수가 함수에 의해 정의 된 매개 변수 수와 같지 않습니다. 개발자가 정의한 기능은 오류를 던지지 않고도 여러 매개 변수 (NetScape의 문서에 따라 최대 255 개)를 수락 할 수 있습니다. 누락 된 매개 변수는 정의되지 않은 기능으로 전달되며 중복 함수는 무시됩니다.
기능 과부하 시뮬레이션
인수 객체를 사용하여 함수에 전달 된 매개 변수 수를 결정한 다음 기능 과부하를 시뮬레이션합니다.
function doadd () {if (arguments.length == 1) {alert (arguments [0] + 5);} else (arguments.length == 2) {alert (arguments [0] + arguments [1]);}}Doadd (10); // 출력 "15"
Doadd (40, 20); // 출력 "60"
매개 변수가 하나만 있으면 doadd () 함수는 매개 변수에 5를 추가합니다. 두 개의 매개 변수가 있으면 두 매개 변수가 추가되어 합계를 반환합니다. 따라서 Doadd (10)는 "15"를 출력하고 Doadd (40, 20)는 "60"을 출력합니다.
과부하만큼 좋지는 않지만 ECMAScript의 이러한 제한을 피하기에 충분합니다.