Arguments 객체

JY·2021년 3월 28일
0

🚩arguments객체에 대한 다른 포스팅에서 이어지는 내용이다!

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}



왜, 언제 사용하는가?

  1. 매개변수가 고정되지 않은 경우
  2. 매개변수의 개수에 따라 다르게 동작할 경우

고정된 개수의 인자를 사용하는 것이 아니라 함수를 실행할 때마다 호출된 인자의 개수를 확인하고 이에 따라 동작하는 경우에 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으로 전달하고 있다.

0개의 댓글