javascript深度克隆
function deepClone(origin, target) {
var target = target || {};
toStr = Object.prototype.toString;
arrStr = ['object, Array'];
for(var prop in origin){
if(origin.hasOwnProperty(prop)) {
if(origin[prop] !== 'null' && typeof(origin[prop]) == 'object'){
target[prop] = (toStr.call(origin[prop]) == arrStr) ? [] : {};
deepClone(origin[prop], target[prop])
}
}else {
target[prop] = origin[prop]
}
}
return target;
}
举个栗子:
var obj = {
name:"abc",
age:123,
card:["visa", "master"],
wife: {
name:"aaa",
son: {
name:"biesun"
}
}
}
var obj1 = {}
deepClone(obj, obj1);
console.log(obj1)