1.遍歷對(duì)象? ? for(var prop in obj)
2.判斷是不是原始值typeof() object
3.判斷是數(shù)組還是對(duì)象? 方法有:instance? tostring? constructor
4.建立相應(yīng)的數(shù)組或?qū)ο?/b>
5.遞歸
function deepClone ( origin, target){
? ? ? ? var target= target ||{};
? ? ? ? ? ? ? ? tostr = object. prototype. toString,
? ? ? ? ? ? ? ? arrstr="[object Array]";
? ? ? ? for( var prop? in origin){
? ? ? ? ? ? ? ? if( origin. hasOwnProperty(prop)){
{
? ? ? ? ? ? ? ? ? ? if( typeof( origin[ prop])== object){
? ? ? ? ? ? ? ? if( tostr. call( origin[ prop])== arrstr){
? ? ? ? ? ? ? ? ? ? ? target[ prop]=[];
} else{
? ? ? ? ? ? ? ? ? ? ? target[ prop]={};
}
deepClone( origin[ prop], target[ prop]);
} else{
? ? ? ? ? ? target[ prop]= origin[ prop];
}
}
}
}