arguments 객체는
함수에 전달된 인수에 해당하는 Array 형태의 객체(유사배열)다.
arguments 객체는 모든 함수 내에서 이용 가능한 지역 변수다. arguments 객체를 사용하여 함수 내에서 모든 인수를 참조할 수 있으며, 호출할 때 제공한 인수 각각에 대한 항목을 갖고 있다. 항목의 인덱스는 0부터 시작한다.
//예를 들어 인수가 세 개인 함수일 경우
function f(a, b, c) {
console.log(arguments[0]);
console.log(arguments[1]);
console.log(arguments[2]);
}
f('가', '나', '다')
//가
//나
//다
arguments객체로 인수를 설정하거나 재할당 할 수도 있다.
arguments[1] = 'new value';
//혹은 이런 식으로도 가능하다
function zoo(a) {
arguments[0] = 100;
return a;
}
zoo(10); // 100
arguments 객체는 유사배열이기에 배열에서 사용하는 method는 먹히지 않는다. method를 사용하기 위해선 우선 arguments 객체를 배열로 바꿔야 한다.
arguments를 배열로 바꾸는 네 가지 방법
//기존 방법
let args = Array.prototype.slice.call(arguments);
let args = [].slice.call(arguments);
//ES2015에 추가된 방법
let args = Array.from(arguments);
let args = [...arguments];
arguments 객체로 다음 속성들을 사용할 수 있다.
arguments.callee
//현재 실행 중인 함수를 가리킨다.
arguments.length
//함수에 전달된 인수의 수를 가리킨다.
arguments[@@iterator]
//arguments의 각 인덱스 값을 포함하는 새로운 Array Iterator 객체를 반환한다.
참고 MDN
developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Functions/arguments
arguments 객체
arguments 객체는 함수에 전달된 인수에 해당하는 Array 형태의 객체입니다.
developer.mozilla.org
'JavaScript' 카테고리의 다른 글
구조 분해 할당(Destructing assginment) - JavaScript (0) | 2020.11.27 |
---|---|
기본값 매개변수(Default parameter) - JavaScript (0) | 2020.11.27 |
Rest 파라미터(...args) - JavaScript (1) | 2020.11.27 |
import와 export - ES6 (0) | 2020.11.23 |
instanceof 연산자- JavaScript (0) | 2020.10.29 |