728x90
jQuery의 $.extend 메서드는 두 번째 매개변수에 지정된 객체의 속성을 첫 번째 매개변수에 지정한 객체와 합쳐주는 역할을 수행합니다.
아래 예제는 기존 javascript에서 객체를 생성 후 해당 객체에 원하는 속성을 추가하는 방법을 보여주고 있습니다.
$(function () {
var obj = {};
obj.name = '홍길동';
alert(obj.name);
});
이것을 jQuery의 $.extend를 사용하면 다음과 같이 바꿀 수 있습니다.
$(function () {
var obj = {};
$.extend(obj, { name : '홍길동' });
alert(obj.name);
});
물론 다수의 속성을 추가하는데도 사용할 수 있으며 속성이 많으면 많을수록 $.extend메서드를 사용하는 편이 좀 더 나을 수 있습니다.
$(function () {
var obj = {};
$.extend(obj, {
name : '홍길동',
addr : '서울시'
});
alert(obj.addr);
});
단 $.extend를 사용 시 주의해야 할 부분이 있습니다.
$(function () {
var obj = { name : '홍길순' };
$.extend(obj, {
name : '홍길동',
addr : '서울시'
});
alert(obj.name);
});
위 예제에서는 obj에 이미 name이 있으나 $.extend메서드로 인해 기존의 name값이 '홍길동'으로 덮어써지게 되는 것을 알 수 있습니다.
이러한 문제는 다음과 같은 방법으로 보완할 수 있습니다.
$(function () {
objExtend({ name : '홍길순' });
});
var objExtend = function(obj) {
obj = $.extend({
name : '홍길동'
}, obj);
alert(obj.name);
};
예제에서는 고의적으로 name속성을 지정해 값을 할당하고 있습니다. 이렇게 하면 obj의 name은 '홍길순'이 됩니다. 그러나 만약 name을 지정하지 않으면 name의 값은 '홍길동'을 유지하게 됩니다.
$(function () {
objExtend({ addr : '서울시' });
});
var objExtend = function(obj) {
obj = $.extend({
name : '홍길동'
}, obj);
alert(obj.name);
};
728x90
'Web > JQuery' 카테고리의 다른 글
[jQuery] 요소 조작 메서드 (0) | 2020.06.07 |
---|---|
[jQuery] 요소 탐색 메서드 (0) | 2020.06.03 |
[jQuery] 배열처리 (0) | 2020.06.02 |
[jQuery] 선택자 (0) | 2020.06.02 |
[jQuery] 다운로드및 사용 (0) | 2020.05.30 |