浅谈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 window.setTimeout() 的详细用法
Nov 04 Javascript
JS验证控制输入中英文字节长度(input、textarea等)具体实例
Jun 21 Javascript
JS命名空间的另一种实现
Aug 09 Javascript
JavaScript控制按钮可用或不可用的方法
Apr 03 Javascript
JavaScript实现点击单选按钮改变输入框中文本域内容的方法
Aug 12 Javascript
Webpack打包慢问题的完美解决方法
Mar 16 Javascript
vue2的todolist入门小项目的详细解析
May 11 Javascript
jQuery获取复选框选中的当前行的某个字段的值
Sep 15 jQuery
jQuery AJAX 方法success()后台传来的4种数据详解
Aug 08 jQuery
JavaScript常用数组操作方法,包含ES6方法
May 10 Javascript
详解Angular模板引用变量及其作用域
Nov 23 Javascript
微信小程序可滑动周日历组件使用详解
Oct 21 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代码
2006/12/06 PHP
PHP时间戳使用实例代码
2008/06/07 PHP
PHP管理内存函数 memory_get_usage()使用介绍
2012/09/23 PHP
如何使用Strace调试工具
2013/06/03 PHP
解决ThinkPHP关闭调试模式时报错的问题汇总
2015/04/22 PHP
PHP设计模式之装饰者模式代码实例
2015/05/11 PHP
php获取数据库中数据的实现方法
2017/06/01 PHP
很全的显示阴历(农历)日期的js代码
2009/01/01 Javascript
最近项目写了一些js,水平有待提高
2009/01/31 Javascript
Javascript 事件流和事件绑定
2009/07/16 Javascript
javascript实现输出指定行数正方形图案的方法
2015/08/03 Javascript
js弹出窗口返回值的简单实例
2016/05/28 Javascript
微信小程序简单实现form表单获取输入数据功能示例
2017/11/30 Javascript
浅析Proxy可以优化vue的数据监听机制问题及实现思路
2018/11/29 Javascript
vue-element-admin 菜单标签失效的解决方式
2019/11/12 Javascript
ES6学习教程之Promise用法详解
2020/11/22 Javascript
[01:36]极致酷炫!TI9典藏宝瓶+撼地者至宝展示
2019/06/11 DOTA
python获取Linux下文件版本信息、公司名和产品名的方法
2014/10/05 Python
python连接oracle数据库实例
2014/10/17 Python
pycharm下打开、执行并调试scrapy爬虫程序的方法
2017/11/29 Python
Python实现matplotlib显示中文的方法详解
2018/02/06 Python
用tensorflow搭建CNN的方法
2018/03/05 Python
python 给DataFrame增加index行名和columns列名的实现方法
2018/06/08 Python
Python字符串逆序的实现方法【一题多解】
2019/02/18 Python
linux中如何使用python3获取ip地址
2019/07/15 Python
OpenCV+face++实现实时人脸识别解锁功能
2019/08/28 Python
python实现扫雷游戏
2020/03/03 Python
关于Python turtle库使用时坐标的确定方法
2020/03/19 Python
Python 捕获代码中所有异常的方法
2020/08/03 Python
英国第一独立滑雪板商店:The Snowboard Asylum
2020/01/16 全球购物
爱国卫生月实施方案
2014/02/21 职场文书
网络工程师自荐书范文
2014/04/01 职场文书
财务部副经理岗位职责范本
2014/06/17 职场文书
务虚会发言材料
2014/12/25 职场文书
请客吃饭开场白
2015/06/01 职场文书
2016党员干部廉政准则学习心得体会
2016/01/20 职场文书