728x90
arguments 객체
만약 함수의 정의보다 더 많은 수의 인수가 전달되면, 매개변수에 대입되지 못한 인수들은 참조할 방법이 없게 됩니다.
하지만 arguments 객체를 이용하면, 함수로 전달된 인수의 총 개수를 확인하거나, 각각의 인수에도 바로 접근할 수 있습니다.
arguments 객체는 함수가 호출될 때 전달된 인수를 배열의 형태로 저장하고 있습니다.
첫 번째 인수는 arguments[0]에 저장되며, 다음 인수는 arguments[1]에 저장됩니다.
또한, 인수의 총 개수는 arguments 객체의 length 프로퍼티에 저장됩니다.
다음 예제의 addNum() 함수는 전달받는 인수의 개수에 상관없이 언제나 정상적인 계산을 수행합니다.
function addNum() {
var sum = 0; // 합을 저장할 변수 sum을 선언함.
for(var i = 0; i < arguments.length; i++) { // 전달받은 인수의 총 수만큼 반복함.
sum += arguments[i]; // 전달받은 각각의 인수를 sum에 더함.
}
return sum;
}
addNum(1, 2, 3); // 6
addNum(1, 2); // 3
addNum(1); // 1
addNum(); // 0
addNum(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); // 55
arguments 객체는 배열과 비슷할 뿐, 실제로 Array 객체는 아닙니다.
숫자로 된 인덱스와 length 프로퍼티만을 가지고 있을 뿐, 모든 것을 배열처럼 다룰 수는 없습니다.
출처 : http://www.tcpschool.com/javascript/js_function_parameterArgument
728x90
'STUDY > JavaScript' 카테고리의 다른 글
[JS] prototype 이란? (0) | 2023.01.16 |
---|---|
[JS] padStart() · Date.parse() (0) | 2023.01.09 |
[JS] spread operator - 배열의 복사 (0) | 2023.01.05 |
[JS] 배열 순회 for · for-in · for-of · forEach (0) | 2023.01.03 |
[JS] 스코프(var, let, const) · String 메서드 (0) | 2023.01.02 |