var extendDeep = function(parent,child){
var i,
toStr = Object.prototype.toString,
astr = '[object Array]';
child = child || {};
for( i in parent){
if(parent.hasOwnProperty(i)){
if(typeof parent[i] === 'object'){
child[i] = toStr.call(parent[i])=== astr ? [] : {};
extendDeep(parent[i],child[i]);
}else{
child[i] = parent[i];
}
}
}
return child;
};
//测试代码:
var obj1 = {
a : 1,
b : {
c : {
d : 1
}
}
};
var obj2 = extendDeep(obj1);
console.log(obj2);

本文深入探讨了JavaScript中实现深拷贝的一种方法,通过递归遍历对象的属性,复制其所有子对象,确保源对象与拷贝对象完全独立。此方法适用于复杂对象结构,包括嵌套的对象和数组。
363

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



