风华正茂、时光流逝、真爱时光、努力创建辉煌。

浅拷贝和深拷贝的区别

  

  浅拷贝只是复制了对象的引用地址,两个对象指向同一个内存地址,所以修改其中任意的值,另一个值都会随之变化,这就是浅拷贝

  深拷贝是将对象及值复制过来,两个对象修改其中任意的值另一个值不会改变,这就是深拷贝

 

要理解 JavaScript中浅拷贝和深拷贝的区别,首先要明白JavaScript的数据类型。JavaScript有两种数据类型,基础数据类型和引用数据类型。

1. 基础数据类型: undefined、boolean、number、string、null,保存在栈内存中的简单数据

2. 引用数据类型:Array、对象、Function,保存在堆内存空间中

 

 

深拷贝是彻底的拷贝,两对象中所有的成员都是独立的一份,而且,成员对象中的成员对象也是独立一份。

浅拷贝中的某些成员变量可能是共享的,深拷贝如果不够彻底,就是浅拷贝。

 

实现深拷贝主要有2种方法

(1)递归

(2)JSON.stringify结合JSON.pars

 

posted @ 2019-10-15 14:37  野马,程序源改造新Bug  阅读(143)  评论(0编辑  收藏  举报