手搓深拷贝
const obj = {
name: "tom",
age: 19,
hobby: ["篮球", "排球"],
sayhi() {
console.log("sayhi");
},
info:{
name:'jerry',
age: 20
}
};
const o = {
};
function fn(newObj, oldObj) {
for (const key in oldObj) {
if (!newObj[key]) {
if (oldObj[key] instanceof Array) {
newObj[key] = []
fn(newObj[key], oldObj[key]);
}
else if(oldObj[key] instanceof Object) {
newObj[key] = {
}
fn(newObj[key], oldObj[key]);
}
else {
newObj[key] = oldObj[key];
}
}
}
}
fn(o, obj);
o.hobby[0] = '乒乓球'
o.info.age = '22'
console.log(o);
console.log(obj);