日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Jquery的深度拷贝和深度克隆

發(fā)布時間:2025/4/9 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Jquery的深度拷贝和深度克隆 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

  有人問,拷貝和克隆不都是“復制”的意思嗎。

  這位看官問的好,一般情況下是一樣的,但在jquery中卻有些不同。jqurey深度拷貝一般只js對象的復制,是$.extend()方法,jquery深度克隆一般指dom對象的復制,是$.clone()方法。

$.extend()

  語法:jQuery.extend( [deep ], target, object1 [, objectN ] )

  用途:復制js對象,或?qū)蓚€或更多對象的內(nèi)容合并到第一個對象。

  深淺拷貝對應的參數(shù)就是[deep],是可選的,為true或false。默認情況是false(淺拷貝),并且false是不能夠顯示的寫出來的。如果想寫,只能寫true(深拷貝),在默認情況下,通過$.extend()合并操作不是遞歸的(淺拷貝);如果第一個對象的屬性本身是一個對象或數(shù)組,那么它將完全用第二個對象相同的key重寫一個屬性。這些值不會被合并。然而,如果將?true?作為該函數(shù)的第一個參數(shù),那么會在對象上進行遞歸的合并(深拷貝)。

  淺拷貝(false 默認):如果第二個參數(shù)對象有的屬性第一個參數(shù)對象也有,那么不會進行相同參數(shù)內(nèi)部的比較,直接將第一個對象的相同參數(shù)覆蓋。

  深拷貝(true):如果第二個參數(shù)對象有的屬性第一個參數(shù)對象也有,還要繼續(xù)在這個相同的參數(shù)向下一層找,比較相同參數(shù)的對象中是否還有不一樣的屬性,如果有,將其繼承到第一個對象,如果沒有,則覆蓋。

1 var object1 = { 2 apple: 0, 3 banana: { 4 weight: 52, 5 price: 100 6 }, 7 cherry: 97 8 }; 9 var object2 = { 10 banana: { 11 price: 200 12 }, 13 durian: 100 14 }; 15 //默認情況淺拷貝 16 //object1--->{"apple":0,"banana":{"price":200},"cherry":97,"durian":100} 17 //object2的banner覆蓋了object1的banner,但是weight屬性未被繼承 18 //$.extend(object1, object2); 19 //深拷貝 20 //object1--->{"apple":0,"banana":{"weight":52,"price":200},"cherry":97,"durian":100} 21 //object2的banner覆蓋了object1的banner,但是weight屬性也被繼承了呦 22 $.extend(true,object1, object2); 23 console.log('object1--->'+JSON.stringify(object1));

$.clone()

  語法:$(selector).clone(includeEvents)

  用途:用于處理dom的克隆

  .clone()方法深度 復制所有匹配的元素集合,包括所有匹配元素、匹配元素的下級元素、文字節(jié)點。clone方法比較簡單就是克隆節(jié)點,但是需要注意,如果節(jié)點有事件或者數(shù)據(jù)之類的其他處理,我們需要通過clone(ture)傳遞一個布爾值ture用來指定,這樣不僅僅只是克隆單純的節(jié)點結(jié)構,還要把附帶的事件與數(shù)據(jù)給一并克隆了

1 $("div").on('click', function() {//執(zhí)行操作}) 2 //clone處理一 3 $("div").clone() //只克隆了結(jié)構,事件丟失 4 //clone處理二 5 $("div").clone(true) //結(jié)構、事件與數(shù)據(jù)都克隆

轉(zhuǎn)載于:https://www.cnblogs.com/guanghe/p/9999210.html

總結(jié)

以上是生活随笔為你收集整理的Jquery的深度拷贝和深度克隆的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。