浅谈JavaScript中面向对象的的深拷贝和浅拷贝


Posted in Javascript onAugust 01, 2016

理解深拷贝和浅拷贝之前需要弄懂一些基础概念,内存中存储的变量类型分为值类型和引用类型。

1、值类型赋值的存储特点, 将变量内的数据全部拷贝一份, 存储给新的变量。

例如:var num = 123 ;var num1=num;

表示变量中存储的数字是 123。然后将数据拷贝一份,就是将 123 拷贝一份. 那么内存中有 2 个 数组;将拷贝数据赋值给 num2,其特点是在内存中有两个数据副本.这可以理解为浅拷贝。

2、引用类型的赋值。

var o={name:'张三‘};

var obj=o;

赋值就是将 变量 o 中存储的数据拷贝一份, 然后将该数据赋值给 obj。内存中有 1 分数据,利用 obj 修改的 name 属性会影响到 o 中的 name。

如果拷贝的时候, 将数据的所有引用结构都拷贝一份, 那么数据在内存中独立就是深拷贝;

如果拷贝的时候, 只针对当前对象的属性进行拷贝, 而属性是引用类型这个不考虑, 那么就是浅拷贝;

拷贝: 复制一份. 指将对象数据复制;

在讨论深拷与浅拷的时候一定要保证对象的属性也是引用类型。

以上这篇浅谈JavaScript中面向对象的的深拷贝和浅拷贝就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript在一段文字中的光标处插入其他文字
Aug 26 Javascript
jquery绑定原理 简单解析与实现代码分享
Sep 06 Javascript
非常好用的JsonToString 方法 简单实例
Jul 18 Javascript
JQuery教学之性能优化
May 14 Javascript
express的中间件bodyParser详解
Dec 04 Javascript
原生js实现图片层叠轮播切换效果
Feb 02 Javascript
Angularjs的键盘事件的绑定
Jul 27 Javascript
p5.js 毕达哥拉斯树的实现代码
Mar 23 Javascript
vue增加强缓存和版本号的实现方法
May 01 Javascript
微信JSSDK实现打开摄像头拍照再将相片保存到服务器
Nov 15 Javascript
如何在JavaScript中创建具有多个空格的字符串?
Feb 23 Javascript
js中Map和Set的用法及区别实例详解
Feb 15 Javascript
Javascript OOP之面向对象
Jul 31 #Javascript
JavaScript的字符串方法汇总
Jul 31 #Javascript
javascript 数组的正态分布排序的问题
Jul 31 #Javascript
详细谈谈javascript的对象
Jul 31 #Javascript
JS中使用DOM来控制HTML元素
Jul 31 #Javascript
图解prototype、proto和constructor的三角关系
Jul 31 #Javascript
JavaScript数据类型转换的注意事项
Jul 31 #Javascript
You might like
PHP unlink与rmdir删除目录及目录下所有文件实例代码
2018/02/07 PHP
php的无刷新操作实现方法分析
2020/02/28 PHP
js Flash插入函数免激活代码
2009/03/31 Javascript
js获取php变量的实现代码
2013/08/10 Javascript
jQuery中dequeue()方法用法实例
2014/12/29 Javascript
在JavaScript中使用开平方根的sqrt()方法
2015/06/15 Javascript
javascript判断复选框是否选中的方法
2015/10/16 Javascript
javascript检测flash插件是否被禁用的方法
2016/01/14 Javascript
大型JavaScript应用程序架构设计模式
2016/06/29 Javascript
判断输入的字符串是否是日期格式的简单方法
2016/07/11 Javascript
jQuery事件绑定用法详解
2016/09/08 Javascript
jQuery Easyui 下拉树组件combotree
2016/12/16 Javascript
详解能在多种前端框架下使用的表格控件
2017/01/11 Javascript
Bootstrap fileinput文件上传组件使用详解
2017/06/06 Javascript
jquery.validate表单验证插件使用详解
2017/06/21 jQuery
vue.js element-ui tree树形控件改iview的方法
2018/03/29 Javascript
webpack4 + react 搭建多页面应用示例
2018/08/03 Javascript
过滤器vue.filters的使用方法实现
2019/09/18 Javascript
解决vue初始化项目时,一直卡在Project description上的问题
2019/10/31 Javascript
如何在vue中使用百度地图添加自定义覆盖物(水波纹)
2020/11/03 Javascript
element-ui封装一个Table模板组件的示例
2021/01/04 Javascript
[43:48]Ti4正赛第一天 VG vs NEWBEE 2
2014/07/19 DOTA
Python编程argparse入门浅析
2018/02/07 Python
Pandas之ReIndex重新索引的实现
2019/06/25 Python
django foreignkey(外键)的实现
2019/07/29 Python
nginx黑名单和django限速,最简单的防恶意请求方法分享
2019/08/09 Python
python实现人脸签到系统
2020/04/13 Python
科尔士百货公司官网:Kohl’s
2016/07/11 全球购物
雅诗兰黛香港官网:Estee Lauder香港
2017/09/26 全球购物
医学专业毕业生推荐信
2013/11/14 职场文书
会计的岗位职责
2014/03/15 职场文书
中国入世承诺
2014/04/01 职场文书
高中国旗下的演讲稿
2014/08/28 职场文书
2014年办公室人员工作总结
2014/12/09 职场文书
酒店前台辞职书
2015/02/26 职场文书
婚礼男方父母答谢词
2015/09/29 职场文书