递归
function deepCopy(arg){
var result = Array.isArray(arg) ?[]: {};
for(let key in arg){
if(obj.hasOwnProperty(key)){
if(typeof arg[key] === 'object'){
result[key] = deepCopy(arg[key])
}else{
result[key] = arg[key]
}
}
}
return result;
}
var a = {
name:'zhang',
age:30,
childred:[{
name:'zhangsan',
age:12
},{
name:'zhangwu',
age:5
}]
}
var b = [1,2,{name:1}]
var c = deepCopy(a);
c.name = 'li'
console.log(a);
console.log(c);
var d = deepCopy(b);
d[2].name = 'li'
console.log(b);
console.log(d);
json
funtion deepCopy(arg){
var str = JSON.stringify(arg);
return JSON.parse(str);
}
注意
slice,concat都是浅拷贝