深拷贝和浅拷贝
作者:互联网
var obj = {
id:1,
name:"fire",
use:{
age:18,
key:20,
},
color:["pink","red","blue"],
};
var o = {};
// //浅拷贝方法:只拷贝最外面一层,深层次只拷贝地址
// Object.assign(o,obj);
// console.log(o);
//深拷贝:拷贝多层,会全部开辟新空间,不会互相干扰
function DeepCopy(newobj,oldobj){
for(var k in oldobj)
{
var item = oldobj[k];
if(item instanceof Array)//必须先写数组,后写对象,因为数组也属于对象
{
newobj[k] = [];
DeepCopy(newobj[k],item);
}
else if(item instanceof Object)
{
newobj[k] = {};
DeepCopy(newobj[k],item);
}
else{
newobj[k] = item;
}
}
}
DeepCopy(o,obj);
o.use = {};
console.log(o);
console.log(obj);
标签:obj,newobj,item,var,DeepCopy,拷贝 来源: https://blog.csdn.net/m0_66711291/article/details/122861063