>  기사  >  웹 프론트엔드  >  자바스크립트 인수 개체 및 함수 매개변수 이해

자바스크립트 인수 개체 및 함수 매개변수 이해

高洛峰
高洛峰원래의
2016-12-14 09:32:161043검색

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


탐지 매개변수 번호를 통해 원본 텍스트: 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의 이러한 제한을 피하기에는 충분합니다.


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.