JavaScript 深克隆
2024-09-04 16:48:33
深克隆
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]));
最新文章
- win10 右键菜单添加Git Hash Here
- batch
- 让项目同时支持ARC和非ARC
- HTML5中的音视频处理
- OpenGL 顶点缓存对象
- soliworks三维机柜布局(一)创建设备型号库
- 封装游戏配表读取和存储(xml格式);支持行列存取,标题存取
- 全面理解Javascript中Promise
- 逆向实用干货分享,Hook技术第二讲,之虚表HOOK
- ftk学习记(list篇)
- FFMPEG 实现 YUV,RGB各种图像原始数据之间的转换(swscale)
- Git - git clone - 将远端仓库克隆拷贝到本地
- SHELL脚本学习-练习写一个脚本4
- 架构之路:nginx与IIS服务器搭建集群实现负载均衡(二)
- vue之过滤器
- Katalon Studio学习笔记(二)——请求响应中文乱码解决方法
- [bzoj1095][ZJOI2007]Hide 捉迷藏——线段树+括号序列
- 经典的兔子生兔子问题(C#递归解法)
- Android学习之Styles And Includes
- Ubuntu16.04安装搜狗拼音输入法(中文输入法)[转]
热门文章
- TCP报文格式,TCP的三次握手和四次挥手&;hosts文件
- IOS开发学习笔记042-UITableView总结2
- [oldboy-django][2深入django]老师管理--查看,添加,编辑
- [错误解决]ubuntu 不在 sudoers 文件中。此事将被报告。
- python3.x与python2.x的区别(转)
- 【转】 [Unity3D]手机3D游戏开发:场景切换与数据存储(PlayerPrefs 类的介绍与使用)
- linux下telnet安装与使用
- hihoCoder offer 收割编程练习赛 83 C 播放列表
- 关于微信小程序并发数不能超过五个的问题
- hdoj 1175 连连看