深拷贝和浅拷贝区别是什么
Posted 江湖再现
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深拷贝和浅拷贝区别是什么相关的知识,希望对你有一定的参考价值。
浅拷贝
浅拷贝是会将对象的每个属性进行依次复制,但是当对象的属性值是引用类型时,实质复制的是其引用,当引用指向的值改变时也会跟着变化。
Object.assign、 扩展运算符 … 、 Array.prototype.slice()、 Array.prototype.concat() 等
深拷贝
深拷贝复制变量值,对于引用数据,则递归至基本类型后,再复制。
深拷贝后的对象与原来的对象是完全隔离的,互不影响,对一个对象的修改并不会影响另一个对象。
深拷贝与浅拷贝的区别为
浅拷贝当第一层的属性值是基本数据类型时,新的对象和原对象互不影响,但是如果第一层的属性值是引用数据类型时,那么新对象和原对象的属性值其指向的是同一块内存地址。
深拷贝会另外创造一个一模一样的对象,新对象跟原对象不共享内存,修改新对象不会改到原对象。
了解更多java培训就业面试题欢迎关注小编!
以上是关于深拷贝和浅拷贝区别是什么的主要内容,如果未能解决你的问题,请参考以下文章