몽탁이의 개발일기
arguments 객체 본문
자바스크립트에서 함수를 정의하면 자동으로 함수 내부에 arguments 객체가 생깁니다.
arguments 객체는 함수안에 정의되어있기 때문에 메소드라고도 합니다.
arguments 객체는 배열의 역할과 비슷하다고 하여 유사배열객체라고 합니다. 여기서 주의할 점은 유사 배열 객체는
말 그대로 유사 배열 객체이지 배열이 아니란 것을 알아야 됩니다. 배열이 아니기 때문에 배열 객체의 메소드를 사용할 수가 없습니다. 대신 유사배열객체는 apply 메소드를 사용하여 배열처럼 사용할 수 있습니다.
function sum(){
var i, _sum=0;
for(i=0; i<arguments.length; i++){
_sum += arguments[i];
}
return _sum;
}
console.log(sum(1,2,3,4));
위 예제는 arguments 객체를 이용하여 매개변수가 없어도 인자로 넘긴 값들을 모두 합한 값이 출력이 되는 것을 확인할 수 있습니다.
그 이유는 매개변수가 없어도 인자로 전달된 값들은 arguments라는 객체 안에 배열처럼 저장되어 있기 때문입니다.
arguments 객체 사용 시 주의할 점
function one(arg1){
console.log('one.lengh', one.length,
'arguments', arguments.length);
}
one('val1','val2');
위 예제는 arguments 객체는 매개변수와 상관없이 인자 값으로 전달된 개수만큼 length가 나와 2가 출력되고
one.length는 가지고 있는 매개변수의 개수를 출력하여 1이 나오는 것을 확인할 수 있습니다.
'Javascript 정리' 카테고리의 다른 글
생성자 (0) | 2020.06.30 |
---|---|
apply 메소드 (0) | 2020.06.30 |
클로저 사용시 주의사항 (0) | 2020.06.29 |
클로저(Closure) (0) | 2020.06.29 |
자바스크립트에서의 함수 (0) | 2020.06.29 |