//深拷贝的实现方法,不支持函数
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);
}
小小程日记
他喜欢的不过是他自己的幻想出来的人罢了。
JS实现深拷贝
jpc·2020-07-02·166 次阅读
Comments | NOTHING