浅谈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中常用的55个经典技巧
Aug 12 Javascript
js中eval()函数和trim()去掉字符串左右空格应用
Feb 02 Javascript
Bootstrap布局组件应用实例讲解
Feb 17 Javascript
jQuery Ajax和getJSON获取后台普通json数据和层级json数据用法分析
Jun 08 Javascript
Bootstrap响应式表格详解
May 23 Javascript
JS 60秒后重新发送验证码的实例讲解
Jul 26 Javascript
使用node打造自己的命令行工具方法教程
Mar 26 Javascript
微信小程序内拖动图片实现移动、放大、旋转的方法
Sep 04 Javascript
解决Vue.js父组件$on无法监听子组件$emit触发事件的问题
Sep 12 Javascript
微信小程序实现的点击按钮 弹出底部上拉菜单功能示例
Dec 20 Javascript
原生js+css实现tab切换功能
Sep 17 Javascript
几款主流好用的富文本编辑器(所见即所得常用编辑器)介绍
Mar 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
搜索引擎技术核心揭密
2006/10/09 PHP
JS中彻底删除JSON对象组成的数组中的元素
2020/09/22 PHP
javascript 10进制和62进制的相互转换
2014/07/31 Javascript
js关于命名空间的函数实例
2015/02/05 Javascript
jQuery异步上传文件插件ajaxFileUpload详细介绍
2015/05/19 Javascript
javascript生成不重复的随机数
2015/07/17 Javascript
简单实现JS对dom操作封装
2015/12/02 Javascript
JSON+Jquery省市区三级联动
2016/01/13 Javascript
javascript截图 jQuery插件imgAreaSelect使用详解
2016/05/04 Javascript
JavaScript判断数组重复内容的两种方法(推荐)
2016/06/06 Javascript
etmvc+jQuery EasyUI+combobox多值操作实现角色授权实例
2016/11/09 Javascript
JS实用的带停顿的逐行文本循环滚动效果实例
2016/11/23 Javascript
bootstrapValidator bootstrap-select验证不可用的解决办法
2017/01/11 Javascript
JavaScript优化以及前段开发小技巧
2017/02/02 Javascript
利用jQuery实现滑动开关按钮效果(附demo源码下载)
2017/02/07 Javascript
Node.js连接MongoDB数据库产生的问题
2017/02/08 Javascript
微信小程序实现点击按钮后修改颜色
2019/12/05 Javascript
js面试题之异步问题的深入理解
2020/09/20 Javascript
[32:56]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第二场 12.11
2020/12/16 DOTA
python采集博客中上传的QQ截图文件
2014/07/18 Python
Python网络爬虫中的同步与异步示例详解
2018/02/03 Python
python遍历文件夹找出文件夹后缀为py的文件方法
2018/10/21 Python
python爬虫的一个常见简单js反爬详解
2019/07/09 Python
详解Python中正则匹配TAB及空格的小技巧
2019/07/26 Python
Python3 使用map()批量的转换数据类型,如str转float的实现
2019/11/29 Python
Python中的wordcloud库安装问题及解决方法
2020/05/27 Python
Python中SQLite如何使用
2020/05/27 Python
anaconda3安装及jupyter环境配置全教程
2020/08/24 Python
CAT鞋英国官网:坚固耐用的靴子和鞋
2016/10/21 全球购物
JackJones官方旗舰店:杰克琼斯男装
2018/03/27 全球购物
Kappa英国官方在线商店:服装和运动器材
2020/11/22 全球购物
重阳节标语大全
2014/10/07 职场文书
结婚保证书(卖身契)
2015/02/26 职场文书
办公室个人总结
2015/02/28 职场文书
2016年清明节寄语
2015/12/04 职场文书
Python利用Turtle绘制哆啦A梦和小猪佩奇
2022/04/04 Python