深克隆function judgeType(arg){//判断js数据类型 return Object.prototype.toString.call(arg).slice(8,-1);}function deepCloneNick(obj){//深克隆 var result,oClass=judgeType(obj); //确定result的类型 if(oClass==="Object"){ result={}; }else if(oClass==="Array"){ result=[]; }else{ return obj; } for(var key in obj){ var copy=obj[key]; if(judgeType(copy)==="Object"||"Array"){ //result[key]=deepCloneNick(copy);//递归调用 避免函数名改变 改成下面一句 result[key]=arguments.callee(copy); }else{ result[key]=obj[key]; } } return result;}console.log(deepCloneNick({a:[1,2],b:3}));console.log(deepCloneNick([{a:'a'},2]));