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);
递归实现对象和数组的深拷贝
最新推荐文章于 2025-12-05 08:37:05 发布
本文介绍了一个简单的深拷贝函数实现方法,通过递归遍历对象的所有属性,并为每个属性创建新的副本,确保原始对象与拷贝对象完全独立。展示了如何使用该函数拷贝一个包含基本类型与对象类型的复杂结构。
773

被折叠的 条评论
为什么被折叠?



