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 相关文章推荐
JavaScript 类的定义和引用 JavaScript高级培训 自定义对象
Apr 27 Javascript
改善用户体验的五款jQuery插件分享
May 22 Javascript
一个基于jquery的文本框记数器
Sep 19 Javascript
jquery移动listbox的值原理及代码
May 03 Javascript
js获取dom的高度和宽度(可见区域及部分等等)
Jun 13 Javascript
javascript中的取反再取反~~没有意义
Apr 06 Javascript
js实现局部页面打印预览原理及示例代码
Jul 03 Javascript
JavaScript中this的9种应用场景及三种复合应用场景
Sep 12 Javascript
jquery遍历json对象集合详解
May 18 Javascript
浅谈JS的基础类型与引用类型
Sep 13 Javascript
WEB 前端开发中防治重复提交的实现方法
Oct 26 Javascript
jQuery实现根据生日计算年龄 星座 生肖
Nov 23 Javascript
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
有关JSON以及JSON在PHP中的应用
2010/04/09 PHP
php模拟实现斗地主发牌
2020/04/22 PHP
js实现DIV的一些简单控制
2007/06/04 Javascript
遨游,飞飞,IE,空中网 浏览器无提示关闭方法
2011/07/11 Javascript
如何获取JQUERY AJAX返回的JSON结果集实现代码
2012/12/10 Javascript
完美兼容各大浏览器获取HTTP_REFERER方法总结
2014/06/24 Javascript
js实现九宫格图片半透明渐显特效的方法
2015/02/16 Javascript
jQuery代码性能优化的10种方法
2016/06/21 Javascript
Three.js学习之几何形状
2016/08/01 Javascript
swiper移动端轮播插件(触碰图片之后停止轮播)
2017/12/28 Javascript
Node.js 使用jade模板引擎的示例
2018/05/11 Javascript
jQuery使用动画队列自定义动画操作示例
2018/06/16 jQuery
vuex state中的数组变化监听实例
2019/11/06 Javascript
Nodejs在局域网配置https访问的实现方法
2020/10/17 NodeJs
如何使用 JavaScript 操作浏览器历史记录 API
2020/11/24 Javascript
[02:02]DOTA2英雄基础教程 斯拉达
2013/12/11 DOTA
python字符串对其居中显示的方法
2015/07/11 Python
Python单体模式的几种常见实现方法详解
2017/07/28 Python
Python解决八皇后问题示例
2018/04/22 Python
python实现两个经纬度点之间的距离和方位角的方法
2019/07/05 Python
关于pytorch中网络loss传播和参数更新的理解
2019/08/20 Python
python使用sklearn实现决策树的方法示例
2019/09/12 Python
利用pandas向一个csv文件追加写入数据的实现示例
2020/04/23 Python
为什么说python更适合树莓派编程
2020/07/20 Python
详解移动端HTML5音频与视频问题及解决方案
2018/08/22 HTML / CSS
基于 HTML5 WebGL 实现的垃圾分类系统
2019/10/08 HTML / CSS
Boden澳大利亚官网:英国在线服装公司
2018/08/05 全球购物
建筑专业自荐信
2013/10/18 职场文书
计算机系毕业生推荐信
2013/11/06 职场文书
少年派的奇幻漂流观后感
2015/06/08 职场文书
2015年秋季校长开学典礼致辞
2015/07/29 职场文书
导游词之青岛太清宫
2019/12/13 职场文书
浅谈JS的二进制家族
2021/05/09 Javascript
MySQL表字段时间设置默认值
2021/05/13 MySQL
pytorch--之halfTensor的使用详解
2021/05/24 Python
python 常用的异步框架汇总整理
2021/06/18 Python