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 相关文章推荐
xml和web特殊字符
Apr 28 Javascript
JavaScript实现x秒后自动跳转到一个页面
Jan 03 Javascript
JavaSript中变量的作用域闭包的深入理解
May 12 Javascript
超漂亮的jQuery图片轮播特效
Nov 24 Javascript
js跨浏览器的事件侦听器和事件对象的使用方法
Dec 17 Javascript
jQuery绑定事件监听bind和移除事件监听unbind用法实例详解
Jan 19 Javascript
JavaScript重定向URL参数的两种方法小结
Oct 19 Javascript
基于angular中的重要指令详解($eval,$parse和$compile)
Oct 21 Javascript
javascript实现简单的可随机变色网页计算器示例
Dec 30 Javascript
vue-cli3脚手架的配置及使用教程
Aug 28 Javascript
微信小程序实现评论功能
Nov 28 Javascript
vue3种table表格选项个数的控制方法
Apr 14 Vue.js
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实现微信公众平台账号自定义菜单类
2015/10/11 PHP
PHP读MYSQL中文乱码的快速解决方法
2016/10/01 PHP
php实现的redis缓存类定义与使用方法示例
2017/08/09 PHP
PHP ElasticSearch做搜索实例讲解
2020/02/05 PHP
JS中typeof与instanceof之间的区别总结
2013/11/14 Javascript
js实现二代身份证号码验证详解
2014/11/20 Javascript
详解js中构造流程图的核心技术JsPlumb
2015/12/08 Javascript
基于canvas的二维码邀请函生成插件
2017/02/14 Javascript
AngularJS实现页面定时刷新
2017/03/14 Javascript
ES6新特性六:promise对象实例详解
2017/04/21 Javascript
详解Vue.js之视图和数据的双向绑定(v-model)
2017/06/23 Javascript
vue2.0在table中实现全选和反选的示例代码
2017/11/04 Javascript
vue router-link传参以及参数的使用实例
2017/11/10 Javascript
详解VueJS应用中管理用户权限
2018/02/02 Javascript
NodeJs实现简单的爬虫功能案例分析
2018/12/05 NodeJs
node.js基于socket.io快速实现一个实时通讯应用
2019/04/23 Javascript
[02:54]DOTA2英雄基础教程 撼地者
2014/01/14 DOTA
python简单实现基于SSL的IRC bot实例
2015/06/15 Python
Python的Django框架中消息通知的计数器实现教程
2016/06/13 Python
正确理解python中的关键字“with”与上下文管理器
2017/04/21 Python
利用标准库fractions模块让Python支持分数类型的方法详解
2017/08/11 Python
python中Matplotlib实现绘制3D图的示例代码
2017/09/04 Python
浅谈pycharm出现卡顿的解决方法
2018/12/03 Python
基于python监控程序是否关闭
2020/01/14 Python
使用 Python 在京东上抢口罩的思路详解
2020/02/27 Python
python+adb+monkey实现Rom稳定性测试详解
2020/04/23 Python
Python 删除List元素的三种方法remove、pop、del
2020/11/16 Python
银行介绍信范文
2014/01/10 职场文书
继承权公证书范本
2015/01/23 职场文书
毕业晚宴祝酒词
2015/08/11 职场文书
祝酒词范文
2015/08/12 职场文书
《灰雀》教学反思
2016/02/19 职场文书
Nginx URL重写rewrite机制原理及使用实例
2021/04/01 Servers
MySQL 存储过程的优缺点分析
2021/05/20 MySQL
python操作xlsx格式文件并读取
2021/06/02 Python
基于Go语言构建RESTful API服务
2021/07/25 Golang