javascript 对象深层copy

javascript对象深层复制 
其实看到网上一个更新简单的方法 当是json对象时   直接先把json对象转换为json字符串
然后复制该字符串后再把复制的字符串 转为json对象
var a = jsonObj;
var b = JSON.stringify(a);
    b = JSON.parse(b);
对非json对象的对象就没什么用了 还有ie6/7不支持这两个方法。
下面这个就比较全面了 无限深层copy
function deepCopy(obj){
if(obj instanceof Array){
var newObj = [],
i = obj.length;
while(i--){
newObj[i] = arguments.callee.call(null,obj[i])
}
return newObj;
}else if(obj instanceof Date){
var newDate = new Date();
newDate.setTime(obj.getTime());
return newDate;
}else if(obj instanceof Object){
var newObj = {};
for(var i in obj){
newObj[i] = arguments.callee.call(null,obj[i])
}
return newObj;
}
else{
return obj;
}
}

参考文档:
http://stackoverflow.com/questions/728360/copying-an-object-in-javascript
http://noyesno.net/page/javascript/20111212-331
http://www.ijavascript.cn/

你可能感兴趣的:(JavaScript)