深度克隆一个对象的方法
/*克隆一个对象*/
方法一、
Object.prototype.deepClone=function(){
var buf;
if (this instanceof Array) {
buf = []; //创建一个空的数组
var i = this.length;
while (i--) {
buf[i] = clone(this[i]);
}
return buf;
}else if (this instanceof Object){
buf = {}; //创建一个空对象
for (var k in this) { //为这个对象添加新的属性
buf[k] = deepClone(this[k]);
}
return buf;
}else{
return Obj;
}
}
方法二、
Object.prototype.deepClone=function(){
var obj=this.constructor=='Array'?[],{};
//var obj=(this instanceof Object)?[],{};
for(var key in this){
obj[key]=typeof(this[key])=='Object'?this[key].deepClone(),this[key];
}
return obj;
}
方法三、
Object.prototype.deepClone=function() {
function cloneObj(){}
cloneObj.prototype=this;
var obj=new cloneObj();
for(var o in obj){
if(typeof(obj[o])=="object")
obj[o]=obj[o].deepClone();
}
return obj;
}