使用递归实现对象和数组的深拷贝

function deepClone(obj = {}) {

// 深拷贝数组或对象,先判断是不是数组或对象

if(typeof obj !=='object' || typeof obj == null) {

return obj

}

// 初始化返回结果

let result

if(obj instanceof Array) {

result = []

} else {

result = {}

}

for(let key in obj) {

// 保证key不是原型的属性

if(obj.hasOwnProperty(key)) {

// 递归调用

result[key] = deepClone(obj[key])

}

}

return result

}

你可能感兴趣的:(使用递归实现对象和数组的深拷贝)