JS实现深拷贝
//深拷贝的实现方法,不支持函数
let arr=[0,1,2,{a:"a",b:"b",c:"c"}];
let arr2=clone(arr);
function clone(obj){
let objType=checkType(obj);
let temp;
if( objType==="Array" ){
temp=[];
}else if( objType==="Object" ){
temp={};
}else{
return obj;
}
for( let i in obj ){
let tempType=checkType(obj[i]);
if( tempType==="Array" || tempType==="Object" ){
temp[i]=clone(obj[i]);
}else{
temp[i]=obj[i];
}
}
return temp;
}
function checkType(target){
return Object.prototype.toString.call(target).slice(8,-1);
}
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。