一、淺拷貝
原生js:
var newArr=[];
var oldArr=[1,2,3];
Object.assign(newArr,oldArr);
jquery實現:
var newArr=[];
var oldArr=[1,2,3];
newArr = $.extend(true,[],oldArr)
二、深拷貝
function deepClone(obj) {
let result = typeof obj.splice === "function" ? [] : {};
if (obj && typeof obj === 'object') {
for (let key in obj) {
if (obj[key] && typeof obj[key] === 'object') {
//如果對象的屬性值爲object的時候,遞歸調用deepClone,即在吧某個值對象複製一份到新的對象的對應值中。
result[key] = deepClone(obj[key]);
} else {
//如果對象的屬性值不爲object的時候,直接複製參數對象的每一個鍵值到新的對象對應的鍵值對中。
result[key] = obj[key];
}
}
return result;
}
return obj;
}
var newArr=[];
var oldArr=[1,2,3];
newArr = deepClone(oldArr);
相關文章:
1、深拷貝的三種實現方式
2、js對象的深拷貝