// 浅拷贝只是拷贝一层,更深层次的对象级别的只拷贝引用
// v
var obj = {
id: 1,
name: "章三",
msg: {
age: 18,
},
arr: [{ name: "78" }],
arr1: ["学习", "游戏"],
}
const o = {}
function deepClone(newObj, oldObj) {
Object.keys(oldObj).forEach((k) => {
if (oldObj[k] instanceof Array) {
newObj[k] = []
deepClone(newObj[k], oldObj[k])
} else if (typeof oldObj[k] == "object") {
newObj[k] = {}
deepClone(newObj[k], oldObj[k])
} else {
newObj[k] = oldObj[k]
}
})
}
deepClone(o, obj)
console.log(o)
// for (const k in obj) {
// o[k] = obj[k];
// }
// function clone(obj) {
// let o ={}
// for (var k in obj) {
// if (typeof obj[k]=="object"||typeof obj[k]=="array") {
// o[k]=clone(obj[k])
// }else{
// o[k] = obj[k]
// }
// }
// return o;
// }
// let p = clone(obj)
// p.msg.age=20
// console.log(obj);
// console.log(p);