原生js实现深复制
2024-09-05 05:02:25
function deepClone (obj) {
if (obj === null) { // 如果是null则直接返回
return obj;
}
let copy = Array.isArray(obj) ? [] : {};
for (let key in obj) {
if (obj.hasOwnProperty(key)) {
if (typeof obj[key] === 'object') {
copy[key] = deepClone(obj[key]);
} else {
copy[key] = obj[key];
}
}
}
console.log(copy);
return copy;
}
let a = { name: '小明', age: 23, children: [1, { aa: 1 }, 2, 3], fn: function (v) { return v; } };
let b = deepClone(a);
console.log('b', b);
最新文章
- EditPlus-CN使用总结
- php导出EXCEL方法
- MySql开始日期、结束日期查询
- [CQOI2011]动态逆序对
- foreach属性-动态-mybatis中使用map类型参数,其中key为列名,value为列值
- POJ 3250 Bad Hair Day --单调栈(单调队列?)
- 常见排序算法基于JS的实现
- [译]脱离jQuery,使用原生Ajax
- 《WPF程序设计指南》读书笔记——第7章 Canvas
- ubuntu 14.04安装quickbuild server (一)
- 【转】VMware 11安装Mac OS X 10.10 及安装Mac Vmware Tools.
- rcp(插件开发) The activator X for bundle Y is invalid 解决办法
- JQuery常用API 核心 效果 JQueryHTML 遍历 Event事件
- 手动清除memcached缓存方法
- ZOJ2212 Argus 优先队列 结构体
- f.lux 自动调节显示器色温
- Xcode中控制台中打印中文处理
- WPF Storyboard 动画播放完毕时触发的事件
- 利用CPaintDC::IntersectClipRect将绘图限制在局部区域
- grep 和 awk的buffer
热门文章
- laravel本地开发环境的安装及配置 - Windows:安装 Laravel Homestead 虚拟机
- Eclipse使用技巧小结
- 微信小程序 空白页重定向---二维码扫描第二次进入 不经过onLoad过程解析scene参数,跳转问题
- Windows开发:窗口最大化问题
- 变形课 HDU - 1181 【floyd传递闭包水题】
- 024_STM32程序移植之_ESP8266_TCP
- MySQl的库操作、表操作和数据操作
- (转)实验文档3:在kubernetes集群里集成Apollo配置中心
- Echarts——关系图(人民的名义为例,简化)源码
- 求ascii 然后做运算