方法一:
function deepClone(origin, target){
// 防止沒寫被拷貝的對象
var target = target || {},
toStr = Object.prototype.toString,
arrStr = "[object Array]";
for(var i in origin){
// 不用遍歷原型上的屬性
if(origin[i] !== "null" && typeof origin[i] == "object"){
// 不是原始類型
if(typeof origin[i] == "object"){
// 如果是數組
if(toStr.call(origin[i]) == arrStr){
target[i] = [];
}else{ // 否則是對象
target[i] = {};
}
// 調用自身
deepClone(origin[i],target[i])
}else{ // 原始類型(除了null)
target[i] = origin[i];
}
}
}
return target;
}
方法二:
var obj2 = JSON.parse(JSON.stringify(obj));