[Javascript] jquery extend
팝업창에서 생성한 객체를 부모창에 전달하고, 팝업창을 종료하면 해당 객체가 사라지는 문제점을 해결합니다.
깊은 복사를 통해서 해당 객체의 값을 유지합니다. Javascript Array Deep Copy 로 구글링 하였습니다.
var a =[[1], [2], [3]];
var b = $.extend(true, [], a);
b.shift().shift();// a is still [[1], [2], [3]]
|
jquery 의 extend 함수를 사용합니다.
version added: 1.1.4jQuery.extend( [deep ], target, object1 [, objectN ] )
|
깊은 복사를 하는 경우에 첫번째 파라미터에 true 를 입력합니다. (aka. deep copy)
두 개 이상의 오브젝트 파라미터를 $.extend()에 전달하면 모든 오브젝들은 타켓 오브젝트에 합쳐집니다.
인자가 null 이거나 undefined 인 경우에는 무시됩니다.
타겟 오브젝트로 지정된 값 (첫번째 파라미터)이 변경되는 것을 유의해야 합니다. $.extend()의 결과값으로 반환됩니다. 첫번째 파라미터값도 유지하고 싶은 경우에는, 첫번째 파리미터에 빈 오브젝트를 넣고, 결과값을 받아서 처리하면 됩니다.
var object = $.extend({}, object1, object2); |
첫번째 파라미터에 true 를 전달하면, 오브젝트는 재귀적으로 병합됩니다.
Warning: Passing
false
for the first argument is not supported.
주의 : false 로 첫번째 파라미터를 전달하는 것은 지원되지 않습니다.
빈 오브젝트로 배열인 경우에는 []
오브젝트인 경우에는 {} 를 사용합니다.
It merge the content of one object to another. If we pass two objects, second object properties are added to first object / first parameter
Now object1 contains properties of object2 If we want to merge two object, then we neeed to pass empty object in the first parameter
Now newObject contains both properties of object1 and object2.. |
'Programming > JavaScript' 카테고리의 다른 글
[jquery] jquery를 사용한 input, select 읽기전용으로 변경 (0) | 2016.01.25 |
---|---|
[Javascript] 팝업 창에서 부모창에 접근할 경우 (0) | 2016.01.01 |
[Javascript] TISTORY, Syntax Highlight (0) | 2015.10.31 |
[ionic] Proxy 설정 (0) | 2015.09.27 |
[ionic] Starting an Ionic App (0) | 2015.09.27 |
댓글