浅谈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 相关文章推荐
js获取select标签的值且兼容IE与firefox
Dec 30 Javascript
详解JavaScript中的表单验证
Jun 16 Javascript
基于javascript实现九宫格大转盘效果
May 28 Javascript
基于JavaScript实现鼠标箭头移动图片跟着移动
Aug 30 Javascript
JavaScript之cookie技术详解
Nov 18 Javascript
详解Js模板引擎(TrimPath)
Nov 22 Javascript
详解Angular 4 表单快速入门
Jun 05 Javascript
Vue 兄弟组件通信的方法(不使用Vuex)
Oct 26 Javascript
vue生命周期的探索
Apr 03 Javascript
原生js实现可兼容PC和移动端的拖动滑块功能详解【测试可用】
Aug 15 Javascript
如何阻止移动端浏览器点击图片浏览
Aug 29 Javascript
js实现限定区域范围拖拉拽效果
Nov 20 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 array_walk() 数组函数
2011/07/12 PHP
php安全配置 如何配置使其更安全
2011/12/16 PHP
浅析php插件 HTMLPurifier HTML解析器
2013/07/01 PHP
IIS安装Apache伪静态插件的具体操作图文
2013/07/01 PHP
php树型类实例
2014/12/05 PHP
Laravel 5.1 on SAE环境开发教程【附项目demo源码】
2016/10/09 PHP
thinkPHP5框架auth权限控制类与用法示例
2018/06/12 PHP
快速保存网页中所有图片的方法
2006/06/23 Javascript
jQuery 常见操作实现方式和常用函数方法总结
2011/05/06 Javascript
js 动态修改css文件用到了cssRule
2014/08/20 Javascript
Validform+layer实现漂亮的表单验证特效
2016/01/17 Javascript
jQuery如何获取动态添加的元素
2016/06/24 Javascript
javascript数组遍历的方法实例分析
2016/09/13 Javascript
jQuery操作css样式
2017/05/15 jQuery
vue-cli3.0如何使用CDN区分开发、生产、预发布环境
2018/11/22 Javascript
django使用channels2.x实现实时通讯
2018/11/28 Javascript
原生JS实现随机点名项目的实例代码
2019/04/30 Javascript
[46:16]2018DOTA2亚洲邀请赛3月30日 小组赛B组 iG VS VP
2018/03/31 DOTA
Python字符遍历的艺术
2008/09/06 Python
python实现获取序列中最小的几个元素
2014/09/25 Python
python微信跳一跳游戏辅助代码解析
2018/01/29 Python
用python实现对比两张图片的不同
2018/02/05 Python
解决webdriver.Chrome()报错:Message:'chromedriver' executable needs to be in Path
2019/06/12 Python
python3 xpath和requests应用详解
2020/03/06 Python
keras输出预测值和真实值方式
2020/06/27 Python
abstract是什么意思
2012/02/12 面试题
如何利用cmp命令比较文件
2013/09/23 面试题
如何用Python来进行查询和替换一个文本字符串
2014/01/02 面试题
淘宝网店营销策划书
2014/01/11 职场文书
文秘人员工作职责
2014/01/31 职场文书
仓库主管岗位职责
2014/03/02 职场文书
努力学习保证书
2015/02/26 职场文书
党支部工作总结2015
2015/04/01 职场文书
初中运动会前导词
2015/07/20 职场文书
详解Python函数print用法
2021/06/18 Python
微信小程序APP页面的之间的相互传递参数以及自定义组件
2022/04/19 Javascript