浅谈JavaScript中面向对象的的深拷贝和浅拷贝
2016-08-01 08:50
721 查看
理解深拷贝和浅拷贝之前需要弄懂一些基础概念,内存中存储的变量类型分为值类型和引用类型。
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中面向对象的的深拷贝和浅拷贝就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
相关文章推荐
- js面向对象的继承--拷贝,类式继承,原型继承
- JavaScript高级 面向对象(7)--深拷贝与浅拷贝
- JavaScript高级 面向对象(8)--浅拷贝代码实现
- 浅谈javascript面向对象
- 什么是面向对象的拷贝继承?
- JavaScript高级 面向对象(9)--深拷贝代码实现
- 保护性拷贝和不可变视图的学习,更面向对象的设计
- 【C++面向对象】深拷贝和浅拷贝
- 面向对象的继承(拷贝继承)
- JavaScript面向对象(4)——最佳继承模式(深拷贝、多重继承、构造器借用、组合寄生式继承)
- 高级面向对象 之 继承(拷贝继承)
- Asp.Net_文件操作基类(读取,删除,批量拷贝,删除,写入,获取文件夹大小,文件属性,遍历目录)
- JavaScript面向对象继承方法
- 黑马程序员——java基础---面向对象(一)
- Swift 面向对象
- Java 面向对象
- 面向对象3-析构函数和私有属性
- 11.C++和C的区别,什么是面向对象
- 语言符合面向对象的必备条件
- 黑马程序员---面向对象之接口2