var obj = {
a1: 1,
b1: 2,
c1: 3,
d1: {
c2: 6,
e2: {
a4: 7,
}
}
}
function fn(source, target) {
if(target === undefined) target = {}
for(var key in source){
if(source[key] && typeof source[key] === 'object'){
target[key] = {}
fn(source[key], target[key])
}else{
target[key] = source[key]
}
}
return target
}
var obj1 = fn(obj)
obj.d1.e2.a4 = 100
console.log(obj1)
对象深复制
最新推荐文章于 2025-12-04 17:39:28 发布
本文介绍了一个JavaScript函数fn,用于递归地从源对象中创建目标对象的副本,确保对象嵌套结构的完整复制。通过fn(obj),原始对象obj中的d1.e2.a4被修改后,新的obj1保持了原有结构。这个技巧在处理复杂对象的克隆时非常实用。
1089

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



