浅谈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 相关文章推荐
驱动事件的addEvent.js代码
Mar 27 Javascript
DOM下的节点属性和操作小结
May 14 Javascript
JS 参数传递的实际应用代码分析
Sep 13 Javascript
js RuntimeObject() 获取ie里面自定义函数或者属性的集合
Nov 23 Javascript
js jquery验证银行卡号信息正则学习
Jan 21 Javascript
文本框文本自动补全效果示例分享
Jan 19 Javascript
AngularJS iframe跨域打开内容时报错误的解决办法
Jan 26 Javascript
微信小程序实现移动端滑动分页效果(ajax)
Jun 13 Javascript
浅谈Vue2.0父子组件间事件派发机制
Jan 08 Javascript
jQuery实现合并表格单元格中相同行操作示例
Jan 28 jQuery
ES6基础之解构赋值(destructuring assignment)
Feb 21 Javascript
Vue 刷新当前路由的实现代码
Sep 26 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中多维数组的foreach遍历示例
2014/06/13 PHP
php获取YouTube视频信息的方法
2015/02/11 PHP
php 参数过滤、数据过滤详解
2015/10/26 PHP
PHP动态生成指定大小随机图片的方法
2016/03/25 PHP
Laravel框架下的Contracts契约详解
2020/03/17 PHP
推荐11款jQuery开发的复选框和单选框美化插件
2011/08/02 Javascript
jquery foreach使用示例
2013/09/12 Javascript
jquery实现触发时更新下拉列表内容的方法
2015/12/02 Javascript
基于BootStrap的图片轮播效果展示实例代码
2016/05/23 Javascript
JS简单实现仿百度控制台输出信息效果
2016/09/04 Javascript
Vue.js快速入门实例教程
2016/10/15 Javascript
JS 中LocalStorage和SessionStorage的使用
2017/08/17 Javascript
简述vue中的config配置
2018/01/23 Javascript
安装Node.js并启动本地服务的操作教程
2018/05/12 Javascript
浅谈Vue路由快照实现思路及其问题
2018/06/07 Javascript
vue项目或网页上实现文字转换成语音播放功能
2020/06/09 Javascript
Python复制文件操作实例详解
2015/11/10 Python
深入讲解Python函数中参数的使用及默认参数的陷阱
2016/03/13 Python
Python实现去除列表中重复元素的方法小结【4种方法】
2018/04/27 Python
完美解决安装完tensorflow后pip无法使用的问题
2018/06/11 Python
tensorflow学习教程之文本分类详析
2018/08/07 Python
Python中修改字符串的四种方法
2018/11/02 Python
python3 批量获取对应端口服务的实例
2019/07/25 Python
python 数据生成excel导出(xlwt,wlsxwrite)代码实例
2019/08/23 Python
Python 实用技巧之利用Shell通配符做字符串匹配
2019/08/23 Python
Scrapy框架实现的登录网站操作示例
2020/02/06 Python
解决Jupyter notebook更换主题工具栏被隐藏及添加目录生成插件问题
2020/04/20 Python
详解HTML5中垂直上下居中的解决方案
2017/12/20 HTML / CSS
New Balance天猫官方旗舰店:始于1906年,百年慢跑品牌
2017/11/15 全球购物
英国领先的互联网葡萄酒礼品商:Vintage Wine & Port
2019/05/24 全球购物
英国最大的割草机购买网站:Just Lawnmowers
2019/11/02 全球购物
市场部专员岗位职责
2013/11/30 职场文书
公司办公室岗位职责
2014/03/19 职场文书
安全宣传标语
2014/06/10 职场文书
护理工作个人总结
2015/03/03 职场文书
2015中秋节晚会开场白
2015/07/30 职场文书