function deepClone(target, origin) {
var target1 = (origin instanceof Array) ? [] : {}; //origin是对象还是数组
var target = target || target1;
var toStr = Object.prototype.toString,
isArray = "[object Array]";
for(var key in origin) {
if(origin.hasOwnProperty(key)) { // 判断key是否是origin自身的属性,如果是就拷贝
if(typeof origin[key] === 'object') { //该属性的值是引用值
if(toStr.call(origin[key]) === isArray) { //是数组
target[key] = [];
}else { //是对象
target[key] = {};
}
deepClone(target[key],origin[key]); //递归
}else{
target[key] = origin[key];
}
}
}
return target;
}