var objA = { "a": 1, "b": 2 };var objB = { "c": 3, "d": 4 };var newObj = $.extend({}, objA, objB);console.log(objA); // { a: 1, b: 2 }console.log(objB); // { c: 3, d: 4 }console.log(newObj); // { a: 1, b: 2, c: 3, d: 4 }
var objA = { "a": 1, "b": 2 };var objB = { "b": 3, "c": 4 };var newObj = $.extend({}, objA, objB);console.log(objA); // { a: 1, b: 2 }console.log(objB); // { b: 3, c: 4 }console.log(newObj); // { a: 1, b: 3, c: 4 } // 두 객체에 같은 속성명이 있을경우 중복된 마지막 속성명의 값으로 합쳐진다.
// 객체가 가진 값이 객체일 경우 위 예제와 같이 같은 속성명이 있는 중복된 마지막 속성명의 값(객체)으로 합쳐진다.var objA = { "a": 1, "b":{ "b1": 100, "b2": 100 }};var objB = { "b": { "b2": 8000, "b3": 600}, "c" : 4 };var newObj = $.extend({}, objA, objB);console.log(objA);console.log(objB);console.log(newObj);
var objA = { "a": 1, "b":{ "b1": 100, "b2": 100}};var objB = { "b": { "b2": 8000, "b3": 600}, "c" : 4 };var newObj = $.extend(true, {}, objA, objB); // true 옵션 (deep copy)console.log(objA);console.log(objB);console.log(newObj);
jQuery $.extend 함수 - true옵션에 따라 깊은복사, 얕은복사 차이 확인
var obj = { "a": { "aa": 100 }};var objCopy = $.extend({}, obj); // 얕은복사(shallow copy)objCopy.a.aa = 1000;console.log(obj); // obj.a.aa의 속성값도 1000으로 변경됨console.log(objCopy);
// 객체가 가진 값이 객체일때 $.extend함수에서 true 옵션에 따라 깊은복사, 얕은복사가 된다.var obj = { "a": { "aa": 100 }};var objCopy = $.extend(true, {}, obj); // 깊은 복사(deep copy)objCopy.a.aa = 1000;console.log(obj); // obj.a.aa의 속성값은 100으로 유지됨console.log(objCopy);
반응형
'jQuery' 카테고리의 다른 글
[jQuery] 자식 선택자를 못찾을때 - p 태그가 가질수 있는 요소 확인 (0) | 2017.06.06 |
---|---|
[jQuery] $.unique() - DOM 요소 배열에서 중복요소 제거 (0) | 2017.05.01 |
[jQuery][Tip] json -> array 변환, array -> json 변환 (0) | 2017.03.18 |
[jQuery] $.grep - 배열 중복값 제거 (0) | 2017.03.02 |
[jQuery UI] jquery-ui datepicker 한글처리 (0) | 2017.02.23 |