jQuery中$.extend(true,object1, object2);深拷貝對象


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

深淺拷貝對應的參數就是[deep],是可選的,為true或false。默認情況是false(淺拷貝),並且false是不能夠顯示的寫出來的。如果想寫,只能寫true(深拷貝)

測試例子:

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));

測試結果

由測試結果知道,jQuery中$.extend(true,object1, object2);可以深拷貝對象,拷貝之后,改變其中一個對象的屬性值,對另外一個沒有影響。

接着在繼續深入理解

測試例子

var object1 = {
    a: 0,
    b: {
        gg: 11,
        mm: 22
    }
};
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));

 

測試結果


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM