JS的深拷贝和浅拷贝

浅拷贝

  • 重新再堆中创建内存,拷贝前后对象的基本数据类型互不影响
  • 只拷贝一层,不能对对象中的子对象进行拷贝

深拷贝

  • 对对象中的子对象进行递归拷贝
  • 拷贝前后的两个对象互不影响

基本数据类型的值是不可变的,动态修改了基本数据类型的值,它的原始值也是不会改变的

比较两个引用类型,是看其的引用是否指向同一个对象。

传值与传址

基本数据类型的赋值(=)是在内存中新开辟一段栈内存,然后再把再将值赋值到新的栈中。

引用类型的赋值是传址。只是改变指针的指向,例如,也就是说引用类型的赋值是对象保存在栈中的地址的赋值,这样的话两个变量就指向同一个对象,因此两者之间操作互相有影响。


js浅拷贝vs深拷贝

javascript中的深拷贝和浅拷贝

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容