JavaScript深拷贝和浅拷贝的区别
Posted 过往将来
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript深拷贝和浅拷贝的区别相关的知识,希望对你有一定的参考价值。
javascript基本数据类型
- 基本数据类型,number,string,boolean,null,undefined,symbol六类。
- 引用数据类型为对象,数组,函数
- S有2个不包含任何值的数据类型:null,undefined
不同数据类型的存储方式
- 基本数据类型 保存在 栈内存,形式如下:栈内存中分别存储着变量的标识符以及变量的值。
- 引用类型 保存在 堆内存 中, 栈内存存储的是变量的标识符以及对象在堆内存中的存储地址,当需要访问引用类型(如对象,数组等)的值时,首先从栈中获得该对象的地址指针,然后再从对应的堆内存中取得所需的数据。
深拷贝简介
- 深拷贝是对,深拷贝不仅是对指针进行拷贝而且还对内容进行拷贝,拷贝完成后,指正指向的地址不一样,但是值是一样的。
浅拷贝简介
- 浅拷贝是对指针进行拷贝,拷贝后两个指针指向同一块内存空间。C++中如果不定义类的复制构造函数,就会调用类的默认复制构造函数,而类的复制构造函数是浅拷贝。
以上是关于JavaScript深拷贝和浅拷贝的区别的主要内容,如果未能解决你的问题,请参考以下文章