- 가변 인자 함수와 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 |
'JavaScript' 카테고리의 다른 글
자바스크립트 (JavaScript) - 26 : 내부 함수 (0) | 2016.07.19 |
---|---|
자바스크립트 (JavaScript) - 25 : 리턴값 (0) | 2016.07.19 |
자바스크립트 (JavaScript) - 23 : 매개변수와 리턴값 (0) | 2016.07.19 |
자바스크립트 (JavaScript) - 22 : 함수의 정의와 호출 (0) | 2016.07.19 |
자바스크립트 (JavaScript) - 21 : 익명함수와 선언적 함수의 혼용 (0) | 2016.07.19 |