티스토리 뷰

728x90
반응형

Arguments객체 
- 자바스크립트 완벽 가이드 참고 및 정리


함수가 호출될때 정의된 매개변수보다 더 많은 인자가 전달되면, 
매개변수 이름이 붙지 않은 인자 값을 직접적으로 참조할 방법은 없다.
함수 몸체 내에서 Arguments 객체는 이러한 문제에 대한 해결책이다.

Arguments객체는 유사 배열 객체이고 이름이 아니라 인덱스 숫자를 통해 함수의 전달인자를 얻어올 수 있다.
만약 전달인자 x하나만을 받는 함수 f를 정의한다고 가정해보자.
이 함수를 두개의 전달인자로 호출한다면, 함수 내에서 1번째 전달인자는 매개변수 이름 x 또는 arguments[0]을 
사용해 접근가능하다.

배열처럼 length속성을 가지고 있는데 이는 arguments가 포함하고 있는 요소의 수를 나타낸다.
2개의 전달 인자로 호출된 함수f의 본문 내에서 arguments.length의 값은 2 이다.



//올바른 개수의 전달인자로 호출되었는지를 확인 용도 예제
function f(x, y, z){
   //먼저 올바른 개수의 전달인자를 받았는지 확인한다.
   if( arguments.length!=3){
         throw Error( "function f called with "+arguments.legnth+"  arguments, but it expects 3 arguments." );
   }
}

//에러 호출을 위해 일부러 정해진 인자 개수 호출 보다 몇개 더 전달해보자.
f( 1, 2, 4, 6, 7)


728x90
반응형

'Programming language > javascript' 카테고리의 다른 글

바인딩이란?  (0) 2013.02.06
클로저(closure)란?  (0) 2013.02.06
자바스크립트에서의 this란~  (0) 2013.02.06
리터럴과 생성자 사용법~  (0) 2013.02.06
반복문과 조건문 올바른 사용법 및 최적화  (0) 2013.02.06
댓글