1.对于纯数据的json对象的深克隆,可以使用JSON.parse()和JSON.stringify()方法
2.原型的继承,还是function,undefined,日期,正则等都完美实现深拷贝
var clone = function(obj){
if(obj === null) return null;
if(obj.constructor !== 'object') return obj;
if(obj.constructor === Date) return new Date(obj);
if(obj.constructor === RegExp) return new RegExp(obj);
var newObj = new obj.constructor(); //保持继承的原型
for(var key in obj){
if(obj.hasOwnProperty(key)){
var val = obj[key];
newObj[key] = typeof val === 'object' ? arguments.callee(val):val;
}
}
return newObj;
}