var obj = {
id: 1,
name: 'andy',
msg: {
age: 18
},
color: ['blue', 'red']
}
var o = {}
function deepCopy(newobj, olodobj) {
for (var key in olodobj) {
var item = olodobj[key] // 其主要思想就是判断传进来对象属性值的类型(其无非就是判断三种,Array,Object,基本数据类型)
if (item instanceof Array) {
newobj[key] = []
deepCopy(newobj[key], item)
}else if(item instanceof Object){
newobj[key] = {}
deepCopy(newobj[key], item)
}else{
newobj[key] = item // 这一步很关键,无论是数组,对象,经过上面的for...in遍历都会来到这一步
}
}
}
deepCopy(o, obj)