viajavascript 인수 객체는 주로 JavaScript 함수 섹션에서 학습됩니다.
3: 인수 객체
사실 함수 본문은 인수 객체를 통해 전달된 매개변수를 받을 수 있습니다.
function box(){ return arguments[0] + '|'+arguments[1]; //得到每次参数的值 } alert(box('caibaojian',24));
인수 객체의 길이 속성은 매개변수 개수를 가져올 수 있습니다.
function box(){ return arguments.length; } alert(box(1,2,3,4,5)); 5
오늘은 주로 사용 과정에 대해 이야기하겠습니다. 인수 개체가 함수의 매개 변수에 액세스하는 경우와 행 매개 변수가 매개 변수를 정의하는 경우의 차이점을 설명하기 위해 예제를 사용하겠습니다. 🎜>
//code from http://caibaojian.com/js-arguments.html function func(a,b){ b=30; arguments[0] = arguments[1] return a; } function(1,2); 30 function(1); undefined //由于函数内arguments形参改变了,a=arguments[1],arguments[1]未定义,所以a最后输出undefined원본 링크: http://caibaojian.com/js-arguments.html
function 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 if(arguments.length == 2) { alert(arguments[0] + arguments[1]); } } doAdd(10); //输出 "15" doAdd(40, 20); //输出 "60"매개변수가 하나만 있는 경우를 통해 , doAdd() 함수는 매개변수에 5를 추가합니다. 매개변수가 2개인 경우 두 매개변수를 더하고 그 합계를 반환합니다. 따라서 doAdd(10)은 "15"를 출력하고 doAdd(40, 20)은 "60"을 출력합니다. 원본 텍스트: http://caibaojian.com/js-arguments.html오버로딩만큼 좋지는 않지만 ECMAScript의 이러한 제한을 피하기에는 충분합니다.