arguments 객체가 파라미터를 { key: value } 형태로 저장
function foo(){
return arguments
};
console.log(foo(1,2,3)); // 0: 1 ,1: 2, 2: 3, length: 3
결과에서 보이듯이 배열의 형태를 하면서 array 형식으로 반환해준다. 이것은 정확이 배열이 아니며 array-like가 된다. 그렇기에 array의 내장 함수를 사용하지 못한다. 하지만
function foo(){
let newArr = Array.prototype.slice.call(arguments);
return newArr;
};
console.log(foo(1,2,3)); // (3) [1, 2, 3]
위와 같이 배열로 만들어 사용할 수도 있다. array-like이기 때문에 배열 객체의 slice()를 통해 얕은 복사가 가능해진다.
이런 array-like는 많은 곳에서 유용하게 사용된다.
'갬발자의 프로그래밍 > Javascript' 카테고리의 다른 글
prototype (0) | 2019.12.23 |
---|---|
Execution Context (0) | 2019.12.23 |
호이스팅 (0) | 2019.12.20 |
function (0) | 2019.12.20 |
스코프 결정 시점 과 함수레벨스코프 (0) | 2019.12.20 |
댓글