jQuery使用$.extend(true,object1, object2);實現(xiàn)深拷貝對象的方法分析
本文實例講述了jQuery使用$.extend(true,object1, object2);實現(xiàn)深拷貝對象的方法。分享給大家供大家參考,具體如下:
語法:jQuery.extend( [deep ], target, object1 [, objectN ] )
深淺拷貝對應(yīng)的參數(shù)就是[deep],是可選的,為true或false。默認(rèn)情況是false(淺拷貝),并且false是不能夠顯示的寫出來的。如果想寫,只能寫true(深拷貝)
測試?yán)樱?/p>
var object1 = {};
var object2 = {
b:{
mm:333
},
c:100
};
console.log('原來的object1--->'+JSON.stringify(object1));
console.log('原來的object2--->'+JSON.stringify(object2));
$.extend(true,object1, object2);
object1.b.mm = 600;
console.log('新的object1--->'+JSON.stringify(object1));
console.log('新的object2--->'+JSON.stringify(object2));
測試結(jié)果

由測試結(jié)果知道,jQuery中$.extend(true,object1, object2);可以深拷貝對象,拷貝之后,改變其中一個對象的屬性值,對另外一個沒有影響。
接著在繼續(xù)深入理解
測試?yán)?/p>
var object1 = {
a: 0,
b: {
gg: 11,
mm: 22
}
};
var object2 = {
b: {
mm: 333
},
c: 100
};
//默認(rèn)情況淺拷貝
//object1--->{"apple":0,"banana":{"price":200},"cherry":97,"durian":100}
//object2的banner覆蓋了object1的banner,但是weight屬性未被繼承
//$.extend(object1, object2);
//深拷貝
//object1--->{"apple":0,"banana":{"weight":52,"price":200},"cherry":97,"durian":100}
//object2的banner覆蓋了object1的banner,但是weight屬性也被繼承了呦
$.extend(true,object1, object2);
console.log('原來的object1--->'+JSON.stringify(object1));
console.log('原來的object2--->'+JSON.stringify(object2));
object1.b.mm = 600;
console.log('新的object1--->'+JSON.stringify(object1));
console.log('新的object2--->'+JSON.stringify(object2));
測試結(jié)果

感興趣的朋友可以使用在線HTML/CSS/JavaScript代碼運(yùn)行工具:http://tools.jb51.net/code/HtmlJsRun測試上述代碼運(yùn)行效果。
更多關(guān)于jQuery相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《jQuery擴(kuò)展技巧總結(jié)》、《jQuery常用插件及用法總結(jié)》、《jQuery切換特效與技巧總結(jié)》、《jQuery遍歷算法與技巧總結(jié)》、《jQuery常見經(jīng)典特效匯總》、《jQuery動畫與特效用法總結(jié)》及《jquery選擇器用法總結(jié)》
希望本文所述對大家jQuery程序設(shè)計有所幫助。
相關(guān)文章
jQuery 選擇表格(table)里的行和列及改變簡單樣式
本文只是介紹如何用jQuery語句對表格中行和列進(jìn)行選擇以及一些簡單樣式改變,希望它可以對jQuery表格處理的深層學(xué)習(xí)提供一些幫助2012-12-12
jquery動畫3.創(chuàng)建一個帶遮罩效果的圖片走廊
今天我們要完成的是一個帶有遮罩效果(補(bǔ)間動畫)的圖片走廊jquery插件:jquery.tranzify.js2012-08-08

