如果想要把某個物件拷貝(合併)給另外乙個物件使用,此時可以使用$.extend()
方法
語法
$.
extend
([deep]
, target, object,
[objectn]
)
注釋示例
$(
function()
;var obj =
;// $.extend(target, obj);
$.extend
(targetobj, obj)
; console.
log(targetobj);}
)<
/script>
$(
function()
;var obj =
;// $.extend(target, obj);
$.extend
(targetobj, obj)
; console.
log(targetobj)
;// 會覆蓋targetobj 裡面原來的資料})
<
/script>
$(
function()
};var obj =};
// $.extend(target, obj);
$.extend
(targetobj, obj)
; console.
log(targetobj)
;// 會覆蓋targetobj 裡面原來的資料
// 淺拷貝把原來物件裡面的複雜資料型別位址拷貝給目標物件
targetobj.msg.age =20;
console.
log(targetobj)
; console.
log(obj);}
)<
/script>
$(
function()
};var obj =};
// 深拷貝把裡面的資料完全複製乙份給目標物件 如果裡面有不衝突的屬性,會合併到一起
$.extend
(true
, targetobj, obj)
; console.
log(targetobj)
;// 會覆蓋targetobj 裡面原來的資料
targetobj.msg.age =20;
console.
log(targetobj)
;// msg :
console.
log(obj);}
)<
/script>
實際開發中,很多專案連續開發十多年,jquery版本不斷更新,最初的 jquery 版本無法滿足需求,這時就需要保證在舊有版本正常執行的情況下,新的功能使用新的jquery版本實現,這種情況被稱為 jquery多庫共存。
jquery使用解決方案示例$
作為識別符號,隨著jquery的流行,其它js庫也會使用$
作為識別符號,但一起使用會引起衝突。所以需要乙個解決方案,讓jquery和其他的js庫不存在衝突,可以同時存在,這種情況被稱為 jquery多庫共存。
$(
function()
console.
log($(
'div'))
;// 如果$符號衝突,我們就使用jquery
jquery.
each()
;// 讓jquery釋放對$控制權,讓用自己決定
var n = jquery.
noconflict()
; console.
log(n(
"span"))
; n.
each()
;})<
/script>
jQuery中拷貝物件和多庫共存
extend deep target,object,objectn deep 如果設為true為深拷貝,預設為false淺拷貝 target 要拷貝的目標物件 object 被拷貝的物件 objectn 待拷貝到第n個物件的物件 淺拷貝目標物件引用的是被拷貝的物件位址,修改目標物件會直接影響到被拷貝...
jQuery 多庫共存
jquery使用 作為識別符號,隨著jquery的流行,其他js的庫也會用 作為識別符號,這樣就會引起衝突 需要乙個解決方案 讓jquery和其他的js庫不存在衝突,可以同時存在,這就叫多庫共存 1 把裡面的 符號統一改為jquery.比如jquery div 2 jquery變數規定新的名稱 no...
jQuery多庫共存處理
1.多庫共存也可以叫無衝突處理。2.總的來說會有兩種情況遇到 太 火熱,j quer y採用 作為命名空間,不免會與別的庫框架或者外掛程式相衝突。jquery版本更新太快,外掛程式跟不上,導致不同版本對外掛程式的支援度不一樣。出於以上的原因,jquery給出了解決方案 noconflict函式。引入...