浅谈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 类
Nov 07 Javascript
日期 时间js控件
May 07 Javascript
extJs 常用到的增,删,改,查操作代码
Dec 28 Javascript
Jquery ThickBox插件使用心得(不建议使用)
Sep 08 Javascript
checkbox使用示例
Aug 23 Javascript
用javascript关闭本窗口技巧小结
Sep 05 Javascript
JavaScript设计模式学习之“类式继承”
Mar 12 Javascript
js中el表达式的使用和非空判断方法
Mar 28 Javascript
jQuery实现点击自身以外区域关闭弹出层功能完整示例【改进版】
Jul 31 jQuery
vue组件间通信六种方式(总结篇)
May 15 Javascript
简单了解JavaScript作用域
Jul 31 Javascript
从表单校验看JavaScript策略模式的使用详解
Oct 17 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数据结构与算法(PHP描述) 快速排序 quick sort
2012/06/21 PHP
PHP函数preg_match_all正则表达式的基本使用详细解析
2013/08/31 PHP
php操作xml入门之xml基本介绍及xml标签元素
2015/01/23 PHP
php实现四舍五入的方法小结
2015/03/03 PHP
php生成gif动画的方法
2015/11/05 PHP
PHP全功能无变形图片裁剪操作类与用法示例
2017/01/10 PHP
详解PHP多个进程配合redis的有序集合实现大文件去重
2019/03/06 PHP
jquery控制listbox中项的移动并排序
2009/11/12 Javascript
jQuery jqgrid 对含特殊字符json 数据的 Java 处理方法
2011/01/01 Javascript
基于jquery的防止大图片撑破页面的实现代码(立即缩放)
2011/10/24 Javascript
JS实现随机化快速排序的实例代码
2013/08/01 Javascript
深入理解JQuery keyUp和keyDown的区别
2013/12/12 Javascript
jQuery中验证表单提交方式及序列化表单内容的实现
2014/01/06 Javascript
js根据日期判断星座的示例代码
2014/01/23 Javascript
在其他地方你学不到的jQuery小贴士和技巧(欢迎收藏)
2016/01/20 Javascript
javascript动态获取登录时间和在线时长
2016/02/25 Javascript
VSCode中如何利用d.ts文件进行js智能提示
2018/04/13 Javascript
Vue框架下引入ActiveX控件的问题解决
2019/03/25 Javascript
JavaScript实现随机点名器
2020/03/25 Javascript
[01:12:40]DOTA2-DPC中国联赛 正赛 DLG vs XG BO3 第三场 1月25日
2021/03/11 DOTA
Python计算字符宽度的方法
2016/06/14 Python
python实现简单神经网络算法
2018/03/10 Python
DataFrame:通过SparkSql将scala类转为DataFrame的方法
2019/01/29 Python
对python中各个response的使用说明
2020/03/28 Python
PyCharm最新激活码PyCharm2020.2.3有效
2020/11/18 Python
CSS3实现的炫酷菜单代码分享
2015/03/12 HTML / CSS
现代绅士日常奢侈品:Todd Snyder
2019/12/13 全球购物
为什么要优先使用同步代码块而不是同步方法?
2013/01/30 面试题
毕业生的自我鉴定该怎么写
2013/12/02 职场文书
捐书寄语赠言
2014/01/18 职场文书
销售经理岗位职责
2014/03/16 职场文书
信息与工商管理职业规划范文:为梦想而搏击
2014/09/11 职场文书
有子女的离婚协议书怎么写(范本)
2014/09/29 职场文书
2015年度物流工作总结
2015/04/30 职场文书
css实现文章分割线样式的多种方法总结
2021/04/21 HTML / CSS
Alexa停服!网站排名将何去何从?目前还没有替代品。
2022/04/15 杂记