浅谈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 浏览器事件介绍
Mar 30 Javascript
JS获取各种宽度、高度的简单介绍
Dec 19 Javascript
谈谈js中的prototype及prototype属性解释和常用方法
Nov 25 Javascript
基于jquery编写分页插件
Mar 07 Javascript
Js+Ajax,Get和Post在使用上的区别小结
Jun 08 Javascript
微信小程序 Template详解及简单实例
Jan 05 Javascript
vuex进阶知识点巩固
May 20 Javascript
JS实现的汉字与Unicode码相互转化功能分析
May 25 Javascript
vue通过点击事件读取音频文件的方法
May 30 Javascript
vue解决花括号数据绑定不成功的问题
Oct 30 Javascript
JS实现网站楼层导航效果代码实例
Jun 16 Javascript
基于VUE实现简单的学生信息管理系统
Jan 13 Vue.js
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
PHP4和PHP5共存于一系统
2006/11/17 PHP
ini_set的用法介绍
2014/01/07 PHP
浅谈PHP中其他类型转化为Bool类型
2016/03/28 PHP
yii2利用自带UploadedFile实现上传图片的示例
2017/02/16 PHP
PHP实现留言板功能的详细代码
2017/03/25 PHP
php数组实现根据某个键值将相同键值合并生成新二维数组的方法
2017/04/26 PHP
Yii2框架中使用PHPExcel导出Excel文件的示例
2017/08/09 PHP
PHP基于ip2long实现IP转换整形
2020/12/11 PHP
node.js解决获取图片真实文件类型的问题
2014/12/20 Javascript
详解Webwork中Action 调用的方法
2016/02/02 Javascript
jQuery判断是否存在滚动条的简单方法
2016/09/17 Javascript
JS键盘版计算器的制作方法
2016/12/03 Javascript
bootstrap导航、选项卡实现代码
2016/12/28 Javascript
vue 实现边输入边搜索功能的实例讲解
2018/09/16 Javascript
详解React 的几种条件渲染以及选择
2018/10/23 Javascript
[53:44]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Magma BO3 第一场 1月31日
2021/03/11 DOTA
python基础教程之简单入门说明(变量和控制语言使用方法)
2014/03/25 Python
用Python进行行为驱动开发的入门教程
2015/04/23 Python
Python实现堆排序的方法详解
2016/05/03 Python
Python3使用requests登录人人影视网站的方法
2016/05/11 Python
Python中input与raw_input 之间的比较
2017/08/20 Python
CentOS 6.5中安装Python 3.6.2的方法步骤
2017/12/03 Python
基于python代码实现简易滤除数字的方法
2018/07/17 Python
redis数据库及与python交互用法简单示例
2019/11/01 Python
利用 Python ElementTree 生成 xml的实例
2020/03/06 Python
解决pip安装的第三方包在PyCharm无法导入的问题
2020/10/15 Python
Baracuta官方网站:Harrington夹克,G9,G4,G10等
2018/03/06 全球购物
H&M旗下高端女装品牌:& Other Stories
2018/05/07 全球购物
澳大利亚设计师服装在线:MISHA
2019/10/07 全球购物
EJB的激活机制
2013/10/25 面试题
建材业务员岗位职责
2013/12/08 职场文书
环保口号大全
2014/06/12 职场文书
群众路线查摆问题整改措施
2014/10/10 职场文书
2015年银行工作总结范文
2015/04/01 职场文书
CSS实现多个元素在盒子内两端对齐效果
2021/03/30 HTML / CSS
用Python仅20行代码编写一个简单的端口扫描器
2022/04/08 Python