浅谈JavaScript中面向对象的的深拷贝和浅拷贝

前端之家收集整理的这篇文章主要介绍了浅谈JavaScript中面向对象的的深拷贝和浅拷贝前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

理解深拷贝和浅拷贝之前需要弄懂一些基础概念,内存中存储的变量类型分为值类型和引用类型。

例如: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/46989.html

猜你在找的JavaScript相关文章