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 相关文章推荐
jQuery Ajax之load()方法
Oct 12 Javascript
javascript 运算数的求值顺序
Aug 23 Javascript
吐槽一下我所了解的Node.js
Oct 08 Javascript
jQuery满意度星级评价插件特效代码分享
Aug 19 Javascript
jquery日历插件datepicker用法分析
Jan 22 Javascript
浅析AngularJS中的指令
Mar 20 Javascript
jQuery javascript获得网页的高度与宽度的实现代码
Apr 26 Javascript
从零开始学习Node.js系列教程六:EventEmitter发送和接收事件的方法示例
Apr 13 Javascript
vue2.0 自定义日期时间过滤器
Jun 07 Javascript
原生js实现碰撞检测
Mar 12 Javascript
Javascript实现秒表计时游戏
May 27 Javascript
JavaScript 与 TypeScript之间的联系
Nov 27 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
用PHP+MySQL搭建聊天室功能实例代码
2012/08/20 PHP
set_include_path和get_include_path使用及注意事项
2013/02/02 PHP
PHP和Mysql中转UTF8编码问题汇总
2015/10/10 PHP
PHP用PDO如何封装简单易用的DB类详解
2017/07/30 PHP
腾讯的ip接口 方便获取当前用户的ip地理位置
2010/11/25 Javascript
jQuery ajax中使用confirm,确认是否删除的简单实例
2016/06/17 Javascript
全面解析Bootstrap表单样式的使用
2016/09/09 Javascript
Javascript生成带参数的二维码示例
2016/10/10 Javascript
JS 拦截全局ajax请求实例解析
2016/11/29 Javascript
Webpack之tree-starking 解析
2018/09/11 Javascript
15个顶级开源JavaScript框架和库
2018/10/10 Javascript
ES6基础之展开语法(Spread syntax)
2019/02/21 Javascript
微信小程序云开发 搭建一个管理小程序
2019/05/17 Javascript
vue使用混入定义全局变量、函数、筛选器的实例代码
2019/07/29 Javascript
vue 父组件通过v-model接收子组件的值的代码
2019/10/27 Javascript
Angular8引入百度Echarts进行图表分析的实现代码
2019/11/27 Javascript
js实现小时钟效果
2020/03/25 Javascript
js中实现继承的五种方法
2021/01/25 Javascript
python 制作自定义包并安装到系统目录的方法
2018/10/27 Python
使用python批量化音乐文件格式转换的实例
2019/01/09 Python
Django rstful登陆认证并检查session是否过期代码实例
2019/08/13 Python
解决ROC曲线画出来只有一个点的问题
2020/02/28 Python
500行python代码实现飞机大战
2020/04/24 Python
Java ExcutorService优雅关闭方式解析
2020/05/30 Python
python制作一个简单的gui 数据库查询界面
2020/11/19 Python
深深扎根运动世界的生活品牌:Tillys
2017/10/30 全球购物
戴森台湾线上商城:Dyson Taiwan
2018/05/21 全球购物
个人自我鉴定怎么写
2013/10/28 职场文书
酒后驾驶检讨书
2014/01/27 职场文书
竞选班干部演讲稿500字
2014/08/20 职场文书
2015年高三班主任工作总结
2015/05/21 职场文书
2015年音乐教学工作总结
2015/07/22 职场文书
大学军训口号大全
2015/12/24 职场文书
《刺客之王:C罗全景传记》:时代从来不会亏待手艺人
2019/11/28 职场文书
导游词之蜀山胜景瓦屋山
2019/11/29 职场文书
Python机器学习之PCA降维算法详解
2021/05/19 Python