浅谈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 相关文章推荐
利用腾讯的ip地址库做ip物理地址定位
Jul 24 Javascript
通过下拉框的值来确定输入框是否可以为空的代码
Oct 18 Javascript
复制网页内容,粘贴之后自动加上网址的实现方法(脚本之家特别整理)
Oct 16 Javascript
jQuery实现仿Google首页拖动效果的方法
May 04 Javascript
jsp 网站引入外部css或者js失效问题解决
Oct 31 Javascript
jQuery实现页面滚动时智能浮动定位
Jan 08 Javascript
实例解析ES6 Proxy使用场景介绍
Jan 08 Javascript
原生JS实现轮播图效果
Oct 12 Javascript
Angular6使用forRoot() 注册单一实例服务问题
Aug 27 Javascript
js实现数字滚动特效
Dec 16 Javascript
JavaScript实现横版菜单栏
Mar 17 Javascript
多种类型jQuery网页验证码插件代码实例
Jan 09 jQuery
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开发需要注意的安全问题
2010/09/01 PHP
PHP的反射机制实例详解
2017/03/29 PHP
PHP实现的各类hash算法长度及性能测试实例
2017/08/27 PHP
PHP实现负载均衡session共享redis缓存操作示例
2018/08/22 PHP
Thinkphp页面跳转设置跳转等待时间的操作
2019/10/16 PHP
JSON 和 JavaScript eval使用说明
2010/06/13 Javascript
js禁止小键盘输入数字功能代码
2011/08/01 Javascript
js文本框输入内容智能提示效果
2015/12/02 Javascript
Bootstrap表单布局样式源代码
2016/07/04 Javascript
jQuery实现根据滚动条位置加载相应内容功能
2016/07/18 Javascript
vue2.0+webpack环境的构造过程
2016/11/08 Javascript
JavaScript trim 实现去除字符串首尾指定字符的简单方法
2016/12/27 Javascript
创建一般js对象的几种方式
2017/01/19 Javascript
js实现添加删除表格(两种方法)
2017/04/27 Javascript
JavaScript实现时间表动态效果
2017/07/15 Javascript
Puppeteer环境搭建的详细步骤
2018/09/21 Javascript
微信小程序CSS3动画下拉菜单效果
2018/11/04 Javascript
node实现简单的增删改查接口实例代码
2019/08/22 Javascript
用python读写excel的方法
2014/11/18 Python
python获取酷狗音乐top500的下载地址 MP3格式
2018/04/17 Python
详解tensorflow载入数据的三种方式
2018/04/24 Python
Pycharm无法显示动态图片的解决方法
2018/10/28 Python
django开发post接口简单案例,获取参数值的方法
2018/12/11 Python
Python基础学习之时间转换函数用法详解
2019/06/18 Python
django创建简单的页面响应实例教程
2019/09/06 Python
PyQt5实现仿QQ贴边隐藏功能的实例代码
2020/05/24 Python
利用python中的matplotlib打印混淆矩阵实例
2020/06/16 Python
pycharm远程连接服务器并配置python interpreter的方法
2020/12/23 Python
PyChon中关于Jekins的详细安装(推荐)
2020/12/28 Python
HTML5 canvas实现移动端上传头像拖拽裁剪效果
2016/03/14 HTML / CSS
南非领先的在线旅行社:Travelstart南非
2016/09/04 全球购物
师范生的个人求职信范文
2014/01/04 职场文书
公司寄语大全
2014/04/10 职场文书
活动总结书
2014/05/08 职场文书
2015年党员创先争优承诺书
2015/01/22 职场文书
Python Pycharm虚拟下百度飞浆PaddleX安装报错问题及处理方法(亲测100%有效)
2021/05/24 Python