JavaScript

자바스크립트 (JavaScript) - 24 : 가변 인자 함수와 arguments 개체

n.han 2016. 7. 19. 11:12

- 가변 인자 함수와 arguments 개체

 

가변 인자 함수는 매개변수의 개수가 변할 수 있는 함수이다.

 

매개변수와 함수 호출은 별개이기 때문에, 매개변수를 잘못 넘겨준다고 해서 함수 호출이 중단되는 경우는 없다.

 

따라서 함수에서는 넘어오는 매개변수의 데이터 타입을 검증하고(입력 정합성)

 

이에 따라 결과를 다르게 하는 작업을 꼭 수행해주어야 한다.

 

실제로 넘겨지는 인수를 사용하기 위해서 arguments 개체를 사용하는데,

 

이는 현재 실행 중인 함수 및 이 함수를 호출한 함수에 대한 인수를 나타내는 개체이다.

 

arguments 개체는 명시적으로 만들 수 없고, 함수가 실행을 시작할 때만 사용할 수 있다.

 

함수의 arguments 개체는 배열이 아니지만 배열 요소에 엑세스하는 방식과 동일하게 각각의 인수에 액세스할 수 있다.

 

다음은 arguments 개체에 사용법을 보여준다.

 

함수의 length 속성을 통해 명시적인 인수의 개수를 알 수 있고, 실제로 넘겨진 인자들은 arguments 개체에 들어 있음을 볼 수 있다.

 

<!DOCTYPE html>

<html>

        <head>

        <title></title>

        <meta charset="UTF-8">       

        <script>

        function argTest(a, b){

               var s = '';

               s += 'Expected Arguments : ' + argTest.length;

               s += '<br/>';

               s += 'Passed Arguments   : ' + arguments.length;

               s += '<br/>';

              

               for( var i in arguments ){

                       s += arguments[i] + '<br/>';

               }                     

               document.write(s);

        }             

        argTest(10, 20, 'string', new Date());

        </script>

        </head>

<body>

</body>

</html>

Expected Arguments : 2
Passed Arguments : 4
10
20
string
Tue Jul 19 2016 09:29:39 GMT+0900 (
대한민국 표준시)