深克隆
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]));

  

最新文章

  1. win10 右键菜单添加Git Hash Here
  2. batch
  3. 让项目同时支持ARC和非ARC
  4. HTML5中的音视频处理
  5. OpenGL 顶点缓存对象
  6. soliworks三维机柜布局(一)创建设备型号库
  7. 封装游戏配表读取和存储(xml格式);支持行列存取,标题存取
  8. 全面理解Javascript中Promise
  9. 逆向实用干货分享,Hook技术第二讲,之虚表HOOK
  10. ftk学习记(list篇)
  11. FFMPEG 实现 YUV,RGB各种图像原始数据之间的转换(swscale)
  12. Git - git clone - 将远端仓库克隆拷贝到本地
  13. SHELL脚本学习-练习写一个脚本4
  14. 架构之路:nginx与IIS服务器搭建集群实现负载均衡(二)
  15. vue之过滤器
  16. Katalon Studio学习笔记(二)——请求响应中文乱码解决方法
  17. [bzoj1095][ZJOI2007]Hide 捉迷藏——线段树+括号序列
  18. 经典的兔子生兔子问题(C#递归解法)
  19. Android学习之Styles And Includes
  20. Ubuntu16.04安装搜狗拼音输入法(中文输入法)[转]

热门文章

  1. TCP报文格式,TCP的三次握手和四次挥手&hosts文件
  2. IOS开发学习笔记042-UITableView总结2
  3. [oldboy-django][2深入django]老师管理--查看,添加,编辑
  4. [错误解决]ubuntu 不在 sudoers 文件中。此事将被报告。
  5. python3.x与python2.x的区别(转)
  6. 【转】 [Unity3D]手机3D游戏开发:场景切换与数据存储(PlayerPrefs 类的介绍与使用)
  7. linux下telnet安装与使用
  8. hihoCoder offer 收割编程练习赛 83 C 播放列表
  9. 关于微信小程序并发数不能超过五个的问题
  10. hdoj 1175 连连看