本文实例讲述了JS对象的深度克隆方法。分享给大家供大家参考,具体如下:

js中创建的对象指向内存,所以在开发过程中,往往修改了一个对象的属性,会影响另外一个对象。
尤其是在angular框架中,dom是由数据驱动的,在增删改查对象的操作中,对象属性的继承关系是很让人头痛的!
我之前遇到的问题就是,在编辑页面,操作了对象数据,影响到了展示数据的展现!
我整理了两种深度克隆对象的方法,供大家参考!
首先var 一个假数据
复制代码 代码如下:var schedule = {"status":21,"msg":"ok","data":[{"name":"lemon","age":21,"contactList":{"phone":[152,153,154],"email":5295}},{"name":"lara","age":22,"contact":{"phone":152,"email":5295}}]}
方法1:
遍历自身,判断当前对象是obj还是list,克隆出新对象
function deepClone(obj)
{
var o,i,j,k;
if(typeof(obj)!="object" || obj===null)return obj;
if(obj instanceof(Array))
{
o=[];
i=0;j=obj.length;
for(;i<j;i++)
{
if(typeof(obj[i])=="object" && obj[i]!=null)
{
o[i]=arguments.callee(obj[i]);
}
else
{
o[i]=obj[i];
}
}
}
else
{
o={};
for(i in obj)
{
if(typeof(obj[i])=="object" && obj[i]!=null)
{
o[i]=arguments.callee(obj[i]);
}
else
{
o[i]=obj[i];
}
}
}
return o;
}
var scheduleClone = deepClone(schedule)
scheduleClone.data[0].contactList.phone[0] = 99999999999
console.log('方法1 深度克隆')
console.log(scheduleClone)
console.log(JSON.stringify(schedule))
console.log(JSON.stringify(scheduleClone))
方法2:
用js原生的json序列化的方式,简单粗暴!
var scheduleClone2 = JSON.parse(JSON.stringify(schedule));
console.log('方法2 深度克隆')
console.log(scheduleClone2)
scheduleClone2.data[0].contactList.phone[0] = 8888888
console.log(JSON.stringify(schedule))
console.log(JSON.stringify(scheduleClone2))
更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《javascript面向对象入门教程》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》
希望本文所述对大家JavaScript程序设计有所帮助。
# JS
# 对象
# 深度克隆
# JS对象深度克隆实例分析
# JS扩展类
# 克隆对象与混合类实例分析
# JS克隆
# 属性
# 数组
# 函数实例分析
# JavaScript 深层克隆对象详解及实例
# JavaScript对象之深度克隆介绍
# JS中如何克隆对象(深克隆浅克隆递归克隆)
# 遍历
# 是在
# 让人
# 相关内容
# 是由
# 两种
# 感兴趣
# 数据结构
# 作了
# 给大家
# 另外一个
# 更多关于
# 所述
# 程序设计
# 面向对象
# 过程中
# 序列化
# 讲述了
# status
# lemon
相关文章:
详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)
网站好制作吗知乎,网站开发好学吗?有什么技巧?
网站制作模板下载什么软件,ppt模板免费下载网站?
武汉外贸网站制作公司,现在武汉外贸前景怎么样啊?
魔方云NAT建站如何实现端口转发?
如何在宝塔面板创建新站点?
建站之星图片链接生成指南:自助建站与智能设计教程
制作网站怎么制作,*游戏网站怎么搭建?
陕西网站制作公司有哪些,陕西凌云电器有限公司官网?
手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?
内部网站制作流程,如何建立公司内部网站?
临沂网站制作公司有哪些,临沂第四中学官网?
实惠建站价格推荐:2025年高性价比自助建站套餐解析
b2c电商网站制作流程,b2c水平综合的电商平台?
如何快速使用云服务器搭建个人网站?
香港服务器WordPress建站指南:SEO优化与高效部署策略
*服务器网站为何频现安全漏洞?
佛山网站制作系统,佛山企业变更地址网上办理步骤?
武清网站制作公司,天津武清个人营业执照注销查询系统网站?
如何在阿里云ECS服务器部署织梦CMS网站?
小米网站链接制作教程,请问miui新增网页链接调用服务有什么用啊?
电脑免费海报制作网站推荐,招聘海报哪个网站多?
如何快速搭建响应式可视化网站?
建站上市公司网站建设方案与SEO优化服务定制指南
高端企业智能建站程序:SEO优化与响应式模板定制开发
rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted
如何在Golang中使用replace替换模块_指定本地或远程路径
如何在企业微信快速生成手机电脑官网?
如何用好域名打造高点击率的自主建站?
Android使用GridView实现日历的简单功能
西安专业网站制作公司有哪些,陕西省建行官方网站?
网站制作的步骤包括,正确网址格式怎么写?
网站制作免费,什么网站能看正片电影?
如何通过虚拟主机空间快速建站?
济南专业网站制作公司,济南信息工程学校怎么样?
广州建站公司哪家好?十大优质服务商推荐
网站专业制作公司有哪些,做一个公司网站要多少钱?
如何通过PHP快速构建高效问答网站功能?
建站org新手必看:2024最新搭建流程与模板选择技巧
Python文件管理规范_工程实践说明【指导】
天津个人网站制作公司,天津网约车驾驶员从业资格证官网?
西安制作网站公司有哪些,西安货运司机用的最多的app或者网站是什么?
建站之星安装路径如何正确选择及配置?
如何获取免费开源的自助建站系统源码?
北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?
,在苏州找工作,上哪个网站比较好?
齐河建站公司:营销型网站建设与SEO优化双核驱动策略
自助网站制作软件,个人如何自助建网站?
如何用IIS7快速搭建并优化网站站点?
广东企业建站网站优化与SEO营销核心策略指南
*请认真填写需求信息,我们会在24小时内与您取得联系。