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 相关文章推荐
jqPlot Option配置对象详解
Jul 25 Javascript
JavaScript常用全局属性与方法记录积累
Jul 03 Javascript
jQuery UI 实现email输入提示实例
Aug 15 Javascript
js防止DIV布局滚动时闪动的解决方法
Oct 30 Javascript
jQuery Masonry瀑布流插件使用详解
Nov 17 Javascript
JavaScript模拟push
Mar 06 Javascript
vue.js中实现登录控制的方法示例
Apr 23 Javascript
vue.js提交按钮时进行简单的if判断表达式详解
Aug 08 Javascript
React router动态加载组件之适配器模式的应用详解
Sep 12 Javascript
Vue.js数字输入框组件使用方法详解
Oct 19 Javascript
判断JavaScript中的两个变量是否相等的操作符
Dec 21 Javascript
three.js中多线程的使用及性能测试详解
Jan 07 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
Session的工作方式
2006/10/09 PHP
PHP读写文件的方法(生成HTML)
2006/11/27 PHP
php flush无效,IIS7下php实时输出的方法
2016/08/25 PHP
thinkPHP5.1框架使用SemanticUI实现分页功能示例
2019/08/03 PHP
Yii框架小部件(Widgets)用法实例详解
2020/05/15 PHP
JavaScript窗口功能指南之在窗口中书写内容
2006/07/21 Javascript
javascript 对象定义方法 简单易学
2009/03/22 Javascript
检测input每次的输入是否合法遇到汉字输入就有问题
2012/05/23 Javascript
JavaScript语言核心数据类型和变量使用介绍
2013/08/23 Javascript
jquery实现动态菜单的实例代码
2013/11/28 Javascript
Javascript中call的两种用法实例
2013/12/13 Javascript
jQuery实现的在线答题功能
2015/04/12 Javascript
很不错的两款Bootstrap Icon图标选择组件
2016/01/28 Javascript
JavaScript比较当前时间是否在指定时间段内的方法
2016/08/02 Javascript
微信小程序学习(4)-系统配置app.json详解
2017/01/12 Javascript
JS正则替换去空格的方法
2017/03/24 Javascript
nodejs学习笔记之路由
2017/03/27 NodeJs
Angular.JS去掉访问路径URL中的#号详解
2017/03/30 Javascript
js模拟百度模糊搜索的实例
2017/08/04 Javascript
详解Node.js读写中文内容文件操作
2018/10/10 Javascript
VUE实现强制渲染,强制更新
2019/10/29 Javascript
Python实现的密码强度检测器示例
2017/08/23 Python
Python数据分析之双色球统计两个红和蓝球哪组合比例高的方法
2018/02/03 Python
python3中zip()函数使用详解
2018/06/29 Python
基于pycharm实现批量修改变量名
2020/06/02 Python
手对手的教你用canvas画一个简单的海报的方法示例
2018/12/10 HTML / CSS
印尼最大的网上书店:Gramedia.com
2018/09/13 全球购物
北京银河万佳Java面试题
2012/03/21 面试题
运动会获奖感言
2014/02/11 职场文书
《童趣》教学反思
2014/02/19 职场文书
《海底世界》教学反思
2014/04/16 职场文书
优秀教师演讲稿
2014/05/06 职场文书
英语通知范文
2015/04/22 职场文书
2015年科协工作总结
2015/05/19 职场文书
2015暑假假期总结
2015/07/13 职场文书
小公司融资,商业计划书的8切记
2019/07/15 职场文书