1.递归法
var obj = {
name: "shishuo",
age: 20,
wife: {
name: "xiazixi",
age: 20
}
}
function deepClone(origin,target){
target = target || {}
for(var prop in origin){
if(origin.hasOwnProperty(prop)){
if(origin[prop]!=="null"&&typeof origin[prop]==='object'){
if(Object.prototype.toString.call(origin[prop])==='[object Array]'){
target[prop] = []
}else{
target[prop] = {}
}
deepClone(origin[prop],target[prop])
}else{
target[prop] = origin[prop]
}
}
}
return target
}
2.JSON.parse(JSON.stringify(object))方法
function cloneJSON(source) {
return JSON.parse(JSON.stringify(source));
}