더북(TheBook)

3.3 “나머지” 연산자

일반적으로 함수를 작성할 때 어떤 매개변수가 필요한지 알고 있으며 각 호출에서 동일한 수의 매개변수가 필요하다. 하지만 일부 함수는 다양한 수의 매개변수를 허용해야 한다. 예를 들어, Object.assign이 ES2015에 추가되기 전에 많은 자바스크립트 프로그래머의 툴킷에는 대상 객체와 하나 이상의 소스 객체를 허용하는 extend 함수가 포함되었다. 이 함수는 소스 객체의 속성을 대상으로 복사한다. ES5 및 이전 버전에서는 다음과 같이 인수 의사 배열을 사용하여 해당 인수에 접근한다.

function extend(target) {
    var n, source;
    for (n = 1; n < arguments.length; ++n) {
        source = arguments[n];
        Object.keys(source).forEach(function(key) {
            target[key] = source[key];
        });
    }
    return target;
}
var obj = extend({}, {a: 1}, {b: 2});
console.log(obj); // {a: 1, b: 2}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.