언더스코어JS 객체 합치기 _.extend() 함수 사용법
_.extend()를 사용하여 여러 객체를 합칠 수 있습니다.
target
객체에 obj1, obj2 ... 여러개의 객체의 속성을 덮어씌워 합칩니다. 두번째 인자부터는 하나의 객체만을 합치거나 가변인자로 여러개의 객체를 넘겨 합칠 수 있습니다._.extend(target, obj1, obj2, ...) | cs |
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); | cs |
실행결과입니다. 주의할점으로는 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는 동일한 참조 | cs |
리턴된 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); | cs |
실행결과입니다.
'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 |