浅拷贝
function shallowCopy(obj) {
if(!obj || typeof obj !== "object") return
// 根据 object 的类型判断是新建一个数组还是对象
let newObj = Array.isArray(obj) ? [] : {}
// 遍历 object,并且判断是 object 的属性才拷贝
for (let k in obj) {
if (obj.hasOwnProperty(key)){
newObj[k] = obj[k]
}
}
return newObj
}
深拷贝
function deepCopy(obj) {
if(!obj || typeof obj !== "object") return
// 根据 object 的类型判断是新建一个数组还是对象
let newObj = Array.isArray(obj) ? [] : {}
// 遍历 object,并且判断是 object 的属性才拷贝
for (let k in obj) {
if (obj.hasOwnProperty(key)){
newObj[k] = typeof obj === "object" ? deepCopy(obj[k]) : obj[k]
}
}
return newObj
}