JS使用JSON.parse(),JSON.stringify()实现对对象的深拷贝功能分析


Posted in Javascript onMarch 06, 2019

本文实例讲述了JS使用JSON.parse(),JSON.stringify()实现对对象的深拷贝功能。分享给大家供大家参考,具体如下:

根据不包含引用对象的普通数组深拷贝得到启发,不拷贝引用对象,拷贝一个字符串会新辟一个新的存储地址,这样就切断了引用对象的指针联系。

测试例子:

var test={
  a:"ss",
  b:"dd",
  c:[
    {dd:"css",ee:"cdd"},
    {mm:"ff",nn:"ee"}
  ]
};
var test1 = JSON.parse(JSON.stringify(test));//拷贝数组,注意这行的拷贝方法
console.log(test);
console.log(test1);
test1.c[0].dd="change"; //改变test1的c属性对象的d属性
console.log(test); //不影响test
console.log(test1);

测试结果:

JS使用JSON.parse(),JSON.stringify()实现对对象的深拷贝功能分析

根据测试结果,我们可以看到,test1已经从test复制一份,并且test1改变其中属性的值时,对原来的对象test没有造成影响。

JSON.parse(),JSON.stringify()兼容性问题

可以通过为IE7以及IE7以下版本的IE浏览器引入json2.js,使用json2.js来解决JSON的兼容性问题

<!--[if lt IE 7]>
<script src="具体放路径/json2.js"></script> 
<![endif]-->

json2.js的github地址为:https://github.com/douglascrockford/JSON-js

好了,到这里就实现了,使用JSON.parse(),JSON.stringify()对对象的深拷贝~~

感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具:http://tools.3water.com/code/HtmlJsRun测试上述代码运行效果。

更多关于JavaScript相关内容可查看本站专题:《javascript面向对象入门教程》、《JavaScript切换特效与技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
动态添加删除表格行的js实现代码
Feb 28 Javascript
js实现图片拖动改变顺序附图
May 13 Javascript
ie 7/8不支持trim的属性的解决方案
May 23 Javascript
浅谈angular.js中实现双向绑定的方法$watch $digest $apply
Oct 14 Javascript
很全面的JavaScript常用功能汇总集合
Jan 22 Javascript
全面解析Bootstrap中transition、affix的使用方法
May 30 Javascript
jquery属性,遍历,HTML操作方法详解
Sep 17 Javascript
es6学习笔记之Async函数基本教程
May 11 Javascript
仿京东快报向上滚动的实例
Dec 13 Javascript
node.js博客项目开发手记
Mar 16 Javascript
JavaScript RegExp 对象用法详解
Sep 24 Javascript
jquery实现垂直手风琴菜单
Mar 04 jQuery
jQuery使用$.extend(true,object1, object2);实现深拷贝对象的方法分析
Mar 06 #jQuery
微信小程序利用swiper+css实现购物车商品删除功能
Mar 06 #Javascript
JS实现数组深拷贝的方法分析
Mar 06 #Javascript
node.js中ws模块创建服务端和客户端,网页WebSocket客户端
Mar 06 #Javascript
node.js中express模块创建服务器和http模块客户端发请求
Mar 06 #Javascript
微信小程序性能优化之checkSession的使用
Mar 06 #Javascript
详解在微信小程序的JS脚本中使用Promise来优化函数处理
Mar 06 #Javascript
You might like
匹配csdn用户数据库与官方用户的重合度并将重叠部分的用户筛选出来
2011/12/25 PHP
PHP小教程之实现链表
2014/06/09 PHP
ThinkPHP使用smarty模板引擎的方法
2014/07/01 PHP
php实现在站点里面添加邮件发送的功能
2020/04/28 PHP
PHP+ajax实现二级联动菜单功能示例
2018/08/10 PHP
laravel框架数据库操作、查询构建器、Eloquent ORM操作实例分析
2019/12/20 PHP
JavaScript 程序编码规范
2010/11/23 Javascript
jquery 快速回到页首的方法
2013/12/05 Javascript
JS实现生成会变大变小的圆环实例
2015/08/05 Javascript
bootstrap-treeview自定义双击事件实现方法
2016/01/09 Javascript
如何使用jquery修改css中带有!important的样式属性
2016/04/28 Javascript
AngularJS中isolate scope的用法分析
2016/11/22 Javascript
js实现PC端和移动端刮卡效果
2020/03/27 Javascript
详解前端路由实现与react-router使用姿势
2017/08/07 Javascript
vue中使用WX-JSSDK的两种方法(推荐)
2020/01/18 Javascript
Python fileinput模块使用实例
2015/05/28 Python
Python、 Pycharm、Django安装详细教程(图文)
2019/04/12 Python
python实现的登录与提交表单数据功能示例
2019/09/25 Python
解决reload(sys)后print失效的问题
2020/04/25 Python
Python命名空间namespace及作用域原理解析
2020/06/05 Python
中国电子产品外贸网站:MiniIntheBox
2017/02/06 全球购物
Footshop罗马尼亚:最好的运动鞋选择
2019/09/10 全球购物
俄罗斯披萨、寿司和面食送货到家服务:2 Берега
2019/12/15 全球购物
局域网标准
2016/09/10 面试题
应届毕业生就业自荐信
2013/10/26 职场文书
记帐员岗位责任制
2014/02/08 职场文书
和谐家庭演讲稿
2014/05/24 职场文书
公司的门卫岗位职责
2014/09/09 职场文书
2014年有孩子的离婚协议书范本
2014/10/08 职场文书
参观邀请函范文
2015/02/02 职场文书
同学聚会致辞集锦
2015/07/28 职场文书
反邪教教育心得体会
2016/01/15 职场文书
《世界多美呀》教学反思
2016/02/22 职场文书
《合作意向书》怎么写?
2019/08/20 职场文书
Nginx配置之实现多台服务器负载均衡
2021/08/02 Servers
24年收藏2000多部退役军用电台
2022/02/18 无线电