🚩arguments객체에 대한 다른 포스팅에서 이어지는 내용이다!
arguments
객체는 함수를 실행(호출)할 때 입력한 인자들을 가지고 있는 유사배열이다.arguments
객체는 모든 함수 내에서 이용 가능한 지역 변수이다.유사배열?
⇒length
속성과 더불어 0부터 인덱스 된 다른 속성을 가지고 있지만, Array의forEach
,map
과 같은 내장 메서드를 가지고 있지 않다는 뜻
function foo () {
console.log(arguments);
}
foo(1, 2, 3);
// [object Arguments] { 0: 1, 1: 2, 2: 3}
고정된 개수의 인자를 사용하는 것이 아니라 함수를 실행할 때마다 호출된 인자의 개수를 확인하고 이에 따라 동작하는 경우에
arguments
객체를 사용한다.
function sum(){
var i, _sum = 0;
for(i = 0; i < arguments.length; i++){
document.write(i+' : '+arguments[i]+'<br />');
_sum += arguments[i];
}
return _sum;
}
document.write('result : ' + sum(1,2,3,4));
함수 sum은 인자로 전달된 값을 모두 더해서 리턴하는 함수다. 그런데 1행처럼 함수 sum은 인자에 대한 정의하가 없다. 하지만 마지막 라인에서는 4개의 인자를 함수 sum으로 전달하고 있다.