export const deepClone = obj => {
var target = {};
for (var key in obj) {
if (Object.prototype.hasOwnProperty.call(obj, key)) {
if (typeof obj[key] === "object") {
target[key] = deepClone(obj[key]);
} else {
target[key] = obj[key];
}
}
}
return target;
};
let obj = {
name:'张三',
age:14,
gender:'male',
job:'teacher',
hobby:{
book:[
{
name:'三国演义',
price:33
},
{
name:'西游记',
price:17
},
{
name:'水浒传',
price:108
},
{
name:'红楼梦',
price:37
},
],
foods:[
{
name:'包子'
},
{
name:'蛋挞'
},
]
}
}
let nobj = deepClone(obj);
// let nobj = obj;
obj.name = '超人'
obj.hobby.foods[0] = '汉堡'
console.log(nobj)
console.log(obj)
打印输出:
拷贝前:
拷贝后: