八 jQuery 拷貝物件 多庫共存

2021-10-06 15:54:40 字數 2403 閱讀 2622

如果想要把某個物件拷貝(合併)給另外乙個物件使用,此時可以使用$.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函式。引入...