따라서 배열 메서드를 사용하려면 간접 호출
을 활용할 수 있다.
function sum() {
//arguments 객체를 배열로 변환(간접호출)
const array = Array.prototype.slice.call(arguments);
return array.reduce(function (pre, cur) {
return pre + cur;
}, 0);
}
console.log(sum(1, 2)); //3
console.log(sum(1, 2, 3)); //6
이러한 번거로움을 해결하기 위해 ES6에서는 Rest 파라미터(함수 매개변수 안에 들어있는'...인자')를 도입했다.
function sum(...args) {
return args.reduce((pre, cur) => pre + cur, 0);
}
console.log(sum(1, 2)); //3
console.log(sum(1, 2, 3)); //6
또는 Array.from(유사배열객체)
메서드를 사용하여 유사배열객체를 객체로 바꿀 수 있다.
function sum() {
realArray = Array.from(arguments);
return realArray.reduce((pre, cur) => pre + cur, 0);
}
console.log(sum(1, 2)); //3
console.log(sum(1, 2, 3)); //6