function deepClone(origin, target){
if(typeof origin === "object" && origin !== null){
toStr = Object.prototype.toString;
arrStr = "[object Array]";
var target = (toStr.call(origin) === arrStr) ? [] : {};
for(var prop in origin){
if( origin.hasOwnProperty(prop)){
target[prop] = (origin[prop] !== null && (typeof(origin[prop])) === "object") ? deepClone(origin[prop]) : origin[prop];
}
}
return target;
}else{
return origin
}
}
上面的代码优化后如下,调用时候必须声明变量接收目标值(可以是原始值或者数组、对象)。 2018/12/04
function deepClone(origin){
if(typeof origin === "object" && origin !== null){
toStr = Object.prototype.toString;
arrStr = "[object Array]";
var target = (toStr.call(origin) === arrStr) ? [] : {};
for(var prop in origin){
if( origin.hasOwnProperty(prop)){
target[prop] =deepClone(origin[prop]);
}
}
return target;
}else{
return origin
}
}
obj1 = deepClone(obj)