📕🐘 도로락 - 코끼리를 냉장고에 넣는 방법
JavaScript | 2019. 12. 17. 23:10

[Underscore.js] 언더스코어JS 객체 합치기 _.extend() 함수 사용법

언더스코어JS 객체 합치기 _.extend() 함수 사용법

_.extend()를 사용하여 여러 객체를 합칠 수 있습니다.

target 객체에 obj1, obj2 ... 여러 개의 객체의 속성을 덮어씌워 합칩니다. 두 번째 인자부터는 하나의 객체만을 합치거나 가변인자로 여러 개의 객체를 넘겨 합칠 수 있습니다.

_.extend(target, obj1, obj2, ...)

target 객체에 속성을 덮어 씌우는 형태입니다. a 객체와 b 객체를 선언한 후 extend() 함수를 사용하면 a에 b의 속성인 age가 추가됩니다.

var a = {
      name : "kim",
      hobby : "movie"
}

var b = {
      age : 3
};

_.extend(a, b);

console.log(a);
console.log(b);

실행결과입니다. 주의할 점으로는 a 객체는 속성이 추가되었지만 합치는 대상이 되는 b 객체에는 변화가 없다는 점입니다.

추가적으로 _.extend() 함수는 합쳐진 객체를 리턴하는데, 앞서 말했듯이 target에 대상인 obj...를 덮어 씌우는 형태이므로 리턴되어진 객체와 a 객체는 동일한 객체입니다.

var a = {
      name : "kim",
      hobby : "movie"
}
var b = {
      age : 3
};
var c = _.extend(a, b);

a.hobby = "pt";

console.log(a); //a와 c는 동일한 참조
console.log(c); //a와 c는 동일한 참조

리턴된 c를 수정하든 target인 a를 수정하든 결과는 같습니다.

속성이 겹치는 경우

만약 합쳐지는 객체간에 겹치는 속성이 있는 경우 가장 마지막 인자로 넘긴 객체의 것으로 오버라이딩(override)됩니다.

var a = {
      name : "kim",
      hobby : "movie"
}

var b = {
      age : 3
};

var c = {
      age : 4
};

var d = {
      hobby : "pt"
};

_.extend(a, b, c, d);

console.log(a);

실행결과입니다.

도로락

도로락

Writer

IT, 프로그래밍, 컴퓨터 활용 정보 등을 위한 블로그