-
深拷貝
在計(jì)算機(jī)中開辟一塊新的內(nèi)存地址用于存放復(fù)制的對(duì)象
let obj1 = {
name:'jack',
age:15,
arr:[1,2,3],
};
let obj2 = {};
deepCopy(obj1,obj2);
console.log(obj1);
console.log(obj2);
obj1.age = 20;
console.log(obj1);
console.log(obj2);
function deepCopy(obj1,obj2) {
for(let i in obj1){
if(obj1[i].constructor === Array){
obj2[i]=[];
obj2[i] = obj1[i];
}else{
obj2[i]={};
obj2[i] = obj1[i];
}
}
}
運(yùn)行結(jié)果:
深拷貝運(yùn)行結(jié)果
-
淺拷貝
只是增加了一個(gè)指針指向已存在的內(nèi)存地址
let oldObj = { a:1, arr: [2,3] };
let shallowObj = oldObj;
console.log(oldObj);
console.log(shallowObj);
oldObj.a = 5;
console.log(oldObj);
console.log(shallowObj);
運(yùn)行結(jié)果
淺拷貝運(yùn)行結(jié)果