function dc(o){
if(o && typeof o === 'object'){//如果是对象类型
let newo=Array.isArray(o)?[]:{} //初始化为数组或者对象
for(k in o){ //循环拷贝
if(o.hasOwnProperty(o[k])){ //只要自身属性,继承的不要
if(o[k] && typeof o[k] === 'object'){ //如果此项是对象,继续深拷贝此项
newo[k]=dc(o[k])
}else newo[k]=o[k] //此项是基本数据类型,直接拷贝
}
}return newo
}
else return o //基本数据类型,直接返回
}