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);
실행결과입니다.

'JavaScript' 카테고리의 다른 글
| [Underscore.js] 언더스코어 배열 관련 함수 정리 (0) | 2020.02.12 |
|---|---|
| [jQuery] 제이쿼리 $.each() 함수에서 break문 continue문 사용하는 방법 (0) | 2019.12.17 |
| [jQuery] 제이쿼리 $.each() 함수 100% 활용하기! (1) | 2019.12.16 |
| [JavaScript] button 태그에서 a 태그처럼 href 설정하여 링크 이동하기 (0) | 2019.11.29 |
| [JavaScript] 자바스크립트로 form 태그의 input 검증(validation) 후에 수동으로 submit 처리하기 (1) | 2019.07.27 |
도로락
WriterIT, 프로그래밍, 컴퓨터 활용 정보 등을 위한 블로그