JavaScript

arguments 객체 - JavaScript

파란배개 2020. 11. 27. 11:20

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