1.遍历对象 for(var prop in obj)
2.判断是不是原始值typeof() object
3.判断是数组还是对象 方法有:instance tostring constructor
4.建立相应的数组或对象
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];
}
}
}
}
网友评论