function shallowCopy(obj) {
if (!obj || typeof obj !== "object") return;
let newObj = Array.isArray(obj) ? [] : {}
for (let key in obj) {
if (obj.hasOwnProperty(key)) {
newObj[key] = obj[key]
}
}
return newObj;
}
function deepCopy(obj) {
if (!obj || typeof obj !== "object") return
let newObj = Array.isArray(obj) ? [] : {}
for (let key in obj) {
if (obj.hasOwnProperty(key)) {
newObj[key] = typeof obj[key] === "object" ? deepCopy(obj[key]) : obj[key]
}
}
return newObj;
}
const tom = {
name: '汤姆',
type: '猫',
skill: {
cook: ['烤老鼠'],
friends: ['杰瑞'],
}
};
const tom1 = deepCopy(tom);
tom1.name = "tom cat"
tom1.skill.cook = "chichichi"
console.log("tom:", tom);
console.log("tom1:", tom1);
const tom1 = JSON.parse(JSON.stringify(tom))
tom1.name = "tom cat"
tom1.skill.cook = "chichichi"
console.log("tom:", tom);
console.log("tom1:", tom1);