浅谈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 相关文章推荐
jQuery 性能优化指南(2)
May 21 Javascript
jquery下利用jsonp跨域访问实现方法
Jul 29 Javascript
jQuery:delegate中select()不起作用的解决方法(实例讲解)
Jan 26 Javascript
JQuery中DOM加载与事件执行实例分析
Jun 13 Javascript
Bootstrap3.0建站教程(一)之bootstrap表单元素排版
Jun 01 Javascript
jQuery常见的选择器及用法介绍
Dec 20 Javascript
基于vue实现多引擎搜索及关键字提示
Mar 16 Javascript
微信小程序扫描二维码获取信息实例详解
May 07 Javascript
Vue项目实现换肤功能的一种方案分析
Aug 28 Javascript
layui select 禁止点击的实现方法
Sep 05 Javascript
vuecli3.x中轻松4步带你使用tinymce的步骤
Jun 25 Javascript
Vue的v-model的几种修饰符.lazy,.number和.trim的用法说明
Aug 05 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
Jquery Ajax.ashx 高效分页实现代码
2009/10/20 Javascript
js跟随滚动条滚动浮动代码
2009/12/31 Javascript
jQuery EasyUI API 中文文档 - Draggable 可拖拽
2011/09/29 Javascript
Javascript面向对象设计一 工厂模式
2011/12/20 Javascript
JS仿百度搜索自动提示框匹配查询功能
2013/11/21 Javascript
javascript学习笔记(八)正则表达式
2014/10/08 Javascript
jquery解决客户端跨域访问问题
2015/01/06 Javascript
js实现点击左右按钮轮播图片效果实例
2015/01/29 Javascript
js监听键盘事件的方法_原生和jquery的区别详解
2016/10/10 Javascript
利用jquery实现下拉框的禁用与启用
2016/12/07 Javascript
jquery插件锦集【推荐】
2016/12/16 Javascript
JavaScript验证知识整理
2017/03/24 Javascript
用js实现before和after伪类的样式修改的示例代码
2017/09/07 Javascript
基于vue实现分页效果
2017/11/06 Javascript
vue轮播图插件vue-awesome-swiper
2017/11/27 Javascript
node.js将MongoDB数据同步到MySQL的步骤
2017/12/10 Javascript
安装Node.js并启动本地服务的操作教程
2018/05/12 Javascript
jQuery实现轮播图及其原理详解
2020/04/12 jQuery
使用pyecharts在jupyter notebook上绘图
2020/04/23 Python
使用python实现ANN
2017/12/20 Python
Python中pandas模块DataFrame创建方法示例
2018/06/20 Python
Python实现计算字符串中出现次数最多的字符示例
2019/01/21 Python
python实现kmp算法的实例代码
2019/04/03 Python
eclipse创建python项目步骤详解
2019/05/10 Python
python通过SSH登陆linux并操作的实现
2019/10/10 Python
通过实例解析Python return运行原理
2020/03/04 Python
Python填充任意颜色,不同算法时间差异分析说明
2020/05/16 Python
python+requests接口自动化框架的实现
2020/08/31 Python
北京华建集团SQL面试题
2014/06/03 面试题
市场营销毕业生自荐信范文
2014/04/01 职场文书
县政府办公室领导班子个人对照检查材料
2014/09/16 职场文书
铅球加油稿100字
2014/09/26 职场文书
群众路线教育实践活动对照检查材料思想汇报(副处级领导)
2014/10/04 职场文书
单身证明格式样本
2015/06/15 职场文书
python基础学习之生成器与文件系统知识总结
2021/05/25 Python
SQL解决未能删除约束问题drop constraint
2022/05/30 SQL Server