function deepClone(obj){
let cloneObj=null //深拷贝之后的对象
if(obj && typeof(obj)!="object"){ //如果不是对象
return obj
}
cloneObj=Array.isArray(obj)?[]:{} //判断是对象还是数组
for (const key in obj) {
if (obj.hasOwnProperty(key)) {
if (obj[key] && typeof (obj[key]) == "object") { //判断对象的属性是不是object
cloneObj[key] = deepClone(obj[key])//mark1
} else {
cloneObj[key] = obj[key]//mark2
}
}
}
return cloneObj
}
var student = {
name:"张三",
age:18
}
var newS = deepClone(student)
newS.name = "李四"
console.log(newS);
console.log(student);
递归实现对象和数组的深拷贝
最新推荐文章于 2024-07-29 11:53:27 发布