首页 > 代码库 > 深克隆
深克隆
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]));
深克隆
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。