博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
深度克隆
阅读量:6540 次
发布时间:2019-06-24

本文共 791 字,大约阅读时间需要 2 分钟。

如何使用原生 Javascript 代码深度克隆一个对象(注意区分对象类型)

对于深度克隆,我的理解是:在克隆或扩展一个对象时,当该对象是一个包括子对象的对象,也会遍历该子对象的属性并进行复制拷贝。所以深度克隆适用于对象的属性也是对象的情况。

贴出js代码:

/**    * 深度扩展对象--适用于对象的属性也是对象的情况    * @param {Object}    * @return {Object}    */    var deepextend = function (destination, source) {
for (var property in source) { var copy = source[property]; // 获取source属性值 if (destination === copy) { continue; } // 如果copy是一个对象,则递归调用(并传入copy参数),直到copy不是一个对象为止 if (typeof copy === 'object') { //$.isObj(copy) destination[property] = arguments.callee(destination[property] || {}, copy); //递归调用 // 否则直接把copy赋值给destination对象的属性(此时与$.extend方法等价) } else { destination[property] = copy; } } return destination; };

转载于:https://www.cnblogs.com/zhangwenkan/p/4263346.html

你可能感兴趣的文章
洛谷——P1469 找筷子
查看>>
springboot项目自定义注解实现的多数据源切换
查看>>
特此说明
查看>>
使用flume替代原有的scribe服务
查看>>
Windows Server 2008 启用公共文件夹共享
查看>>
Apple Watch的非“智能手表”卖点
查看>>
函数指针和指针函数
查看>>
Python的函数参数传递:传值?引用?
查看>>
[转]分享2011年8个最新的jQuery Mobile在线教程
查看>>
android call require api level
查看>>
SQLSERVER是怎麽通过索引和统计信息来找到目标数据的(第一篇)
查看>>
SilverLigth学习笔记--控制 Silverlight控件样式(转)
查看>>
poj3262
查看>>
4、动态代理
查看>>
轮毂电机光电增量编码器的ABZ信号详解
查看>>
洛谷——P1330 封锁阳光大学
查看>>
css选择器
查看>>
linux系统配置之bash shell的配置(centos)
查看>>
linux C 9*9
查看>>
python的string操作总结
查看>>