浅谈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 相关文章推荐
用YUI做了个标签浏览效果
Feb 20 Javascript
JavaScript 面向对象的 私有成员和公开成员
May 13 Javascript
jQueryMobile之Helloworld与页面切换的方法
Feb 04 Javascript
js实现的牛顿摆效果
Mar 31 Javascript
JS实现重新加载当前页面或者父页面的几种方法
Nov 30 Javascript
Vue.js组件tree实现省市多级联动
Dec 02 Javascript
微信小程序 表单Form实例详解(附源码)
Dec 22 Javascript
vue-cli项目如何使用vue-resource获取本地的json数据(模拟服务端返回数据)
Aug 04 Javascript
Vue中引入样式文件的方法
Aug 18 Javascript
解决js相同的正则多次调用test()返回的值却不同的问题
Oct 10 Javascript
什么时候不能在 Node.js 中使用 Lock Files
Jun 24 Javascript
一篇文章弄清楚Ajax请求的五个步骤
Mar 17 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
phpinfo 系统查看参数函数代码
2009/06/05 PHP
教你如何用php实现LOL数据远程获取
2014/06/10 PHP
PHP实现取得HTTP请求的原文
2014/08/18 PHP
[原创]PHP字符串中插入子字符串方法总结
2016/05/06 PHP
JavaScript 异步调用框架 (Part 2 - 用例设计)
2009/08/03 Javascript
jquery ajax 调用失败的原因示例介绍
2013/09/27 Javascript
Javascript中call和apply函数的比较和使用实例
2015/02/03 Javascript
编写高性能Javascript代码的N条建议
2015/10/12 Javascript
基于jQuery实现简单的折叠菜单效果
2015/11/23 Javascript
Javascript实现通过选择周数显示开始日和结束日的实现代码
2016/05/30 Javascript
jQuery通过ajax方法获取json数据不执行success的原因及解决方法
2016/10/15 Javascript
微信JSSDK调用微信扫一扫功能的方法
2017/07/25 Javascript
使用Vue完成一个简单的todolist的方法
2017/12/01 Javascript
jQuery实现的老虎机跑动效果示例
2018/12/29 jQuery
Vue仿微信app页面跳转动画效果
2019/08/21 Javascript
Vue简单封装axios之解决post请求后端接收不到参数问题
2020/02/16 Javascript
JavaScript ES 模块的使用
2020/11/12 Javascript
CentOS6.9 Python环境配置(python2.7、pip、virtualenv)
2019/05/06 Python
用Python画小女孩放风筝的示例
2019/11/23 Python
python 检查数据中是否有缺失值,删除缺失值的方式
2019/12/02 Python
python-docx文件定位读取过程(尝试替换)
2020/02/13 Python
浅析Python 序列化与反序列化
2020/08/05 Python
Python使用socket模块实现简单tcp通信
2020/08/18 Python
python opencv pytesseract 验证码识别的实现
2020/08/28 Python
python两种注释用法的示例
2020/10/09 Python
为什么使用接口?
2014/08/13 面试题
Android面试题附答案
2014/12/08 面试题
《中国梦我的梦》大学生演讲稿
2014/08/20 职场文书
优秀团员事迹材料1000字
2014/08/20 职场文书
县政府办公室领导班子对照检查材料思想汇报
2014/09/28 职场文书
2014三年级班主任工作总结
2014/12/05 职场文书
奖金申请报告模板
2015/05/15 职场文书
钢铁是怎样炼成的读书笔记
2015/06/29 职场文书
2016年村干部公开承诺书(公开承诺事项)
2016/03/25 职场文书
python异步的ASGI与Fast Api实现
2021/07/16 Python
详解在OpenCV中如何使用图像像素
2022/03/03 Python