javascript 의 function 을 사용하다 보면,  파라미터에 대해서 arguments 배열에 접근하여 사용하는 경우가 있다.

이를 통해 유동적인 파라미터를 제어하거나, 기존에 제공되는 api 를 커스터마이징도 할 수 있게 된다.


예시 1) string fomat <= 클릭

예시 2) setTimeout 커스터마이징 <= 클릭


function argLength(one, two){

    console.log("argLength.length : " + argLength.length);

    console.log("arguments.length : " + arguments.length);

}

argLength(1,2,3,4);


위 예제의 결과는

argLength.length : 2

arguments.length : 4

가 나오게 된다.

argLength 라는 function 은 선언되면서 가지게되는 몇가지 멤버변수가 있는데, 그중에 length 부분에는 선언시 정의된 파라미터의 개수가 바인딩된다. 

function 호출시에 파라미터는 function 에서 선언된 파라미터에 arguments 값이 순서대로 맵핑되고, 파라미터가 더 적은 경우에는 undefined 를 가지게 되며, 선언파라미터 많은 경우에는 arguments 배열을 통해 접근이 가능하게 된다.


* 호출

argLength(1);

* 결과

argLength.length : 2

arguments.length : 1

이와 같이 호출시에는 argLength 의 two 값은 undefined 가 되게 된다.



* 실행 테스트 function

var argLength = function(one,two){

     //... 중략

}

으로 선언된 function 이 있다.

아래에서 파라미터를 변경하여 실행하면(ex> argLength("홍길동","무인도","정류소") ), 

one, two 의 값과 argLength.length , arguments.length 를 확인할 수 있다.


 실행테스트

 결과

  

 



이상~

+ Recent posts