浅谈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基于jQuery的表格悬停变色/恢复,表格点击变色/恢复,点击行选Checkbox
Aug 05 Javascript
JavaScript基础篇之变量作用域、传值、传址的简单介绍与实例
Jun 29 Javascript
Javascript判断图片尺寸大小实例分析
Jun 16 Javascript
基于jquery的文字向上跑动类似跑马灯的效果
Sep 22 Javascript
jQuery解决input元素的blur事件和其他非表单元素的click事件冲突问题
Aug 15 Javascript
AngularJS入门教程之XHR和依赖注入详解
Aug 18 Javascript
JS搜狐面试题分析
Dec 16 Javascript
jsTree事件和交互以及插件plugins详解
Aug 29 Javascript
Three.js基础学习教程
Nov 16 Javascript
微信小程序发送短信验证码完整实例
Jan 07 Javascript
使用pm2自动化部署node项目的方法步骤
Jan 28 Javascript
Vue的Options用法说明
Aug 14 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
DedeCMS dede_channeltype表字段注释
2010/04/07 PHP
提高define性能的php扩展hidef的安装和使用
2011/06/14 PHP
浅谈PHP强制类型转换,慎用!
2013/06/06 PHP
解析yahoo邮件用phpmailer发送的实例
2013/06/24 PHP
PHP 设计模式系列之 specification规格模式
2016/01/10 PHP
php正则判断是否为合法身份证号的方法
2017/03/16 PHP
阿里云Win2016安装Apache和PHP环境图文教程
2018/03/11 PHP
javascript让setInteval里的函数参数中的this指向特定的对象
2010/01/31 Javascript
javaScript(JS)替换节点实现思路介绍
2013/04/17 Javascript
jQuery 获取浏览器所在的IP地址的小例子
2013/11/08 Javascript
点击button获取text内容并改变样式的js实现
2014/09/09 Javascript
javascript中setTimeout使用指南
2015/07/26 Javascript
JavaScript运动减速效果实例分析
2015/08/04 Javascript
详解为Angular.js内置$http服务添加拦截器的方法
2016/12/20 Javascript
easyui combotree加载静态数据问题(选不上)解决方法
2016/12/26 Javascript
js获取浏览器和屏幕的各种宽度高度
2017/02/22 Javascript
JS根据Unix时间戳显示发布时间是多久前【项目实测】
2019/07/10 Javascript
layui 解决富文本框form表单提交为空的问题
2019/10/26 Javascript
Node 模块原理与用法详解
2020/05/13 Javascript
JS实现4位随机验证码
2020/10/19 Javascript
element-ui封装一个Table模板组件的示例
2021/01/04 Javascript
python中使用urllib2获取http请求状态码的代码例子
2014/07/07 Python
在Python中操作字典之clear()方法的使用
2015/05/21 Python
小米5s微信跳一跳小程序python源码
2018/01/08 Python
浅析python的Lambda表达式
2019/02/27 Python
python命令行工具Click快速掌握
2019/07/04 Python
python用for循环求和的方法总结
2019/07/08 Python
对python中的os.getpid()和os.fork()函数详解
2019/08/08 Python
tensorflow实现训练变量checkpoint的保存与读取
2020/02/10 Python
Python逐行读取文件内容的方法总结
2020/02/14 Python
代理班主任的自我评价
2014/02/04 职场文书
幼儿园教学随笔感言
2014/02/23 职场文书
2015年教师师德师风承诺书
2015/04/28 职场文书
逃课检讨书范文
2015/05/06 职场文书
车间安全生产管理制度
2015/08/06 职场文书
高三数学复习备考教学反思
2016/02/18 职场文书