JavaScript深拷贝

JavaScript深拷贝递归实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
var deepclone=function (target) {
if(typeof target=='object'){
if(target==null){
return null;
}else if(Array.isArray(target)){
let result=[];
for(let i in target){
result.push(deepclone[target[i]]);
}
}else if(target.constructor==RegExp){
let result=target;
return result;
}else{
result={};
for(let i in target){
result[i]=deepclone(target[i]);
}
return result;
}
}else{
return target;
}
}