본문 바로가기
Programming/JavaScript

[Javascript] jquery extend

by NAMP 2015. 12. 31.
[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 함수를 사용합니다.



깊은 복사를 하는 경우에 첫번째 파라미터에 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
Ex: $.extend(object1, object2);

Now object1 contains properties of object2

If we want to merge two object, then we neeed to pass empty object in the first parameter

Ex: var newObject = $.extend({}, object1, object2);
Now newObject contains both properties of object1 and object2..



댓글