码迷,mamicode.com
首页 > 其他好文 > 详细

深克隆

时间:2016-10-18 13:45:13      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:

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]));

深克隆

标签:

原文地址:http://www.cnblogs.com/puyongsong/p/5972711.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!