浅拷贝与深拷贝

85 阅读1分钟

前情知识

  • 基本类型 -> 存放在栈中
  • 引用类型 -> 存放在堆中 (栈中存放指向其的引用)

浅拷贝与深拷贝的区别

浅拷贝:只拷贝一层

创建新的数据 ->

  • 基本类型 -> 复制值
  • 引用类型 -> 复制地址

深拷贝: 完全拷贝

开辟一个新的栈,对象属性完全相同,但对应两个地址,修改一个属性不会影响另一个

小结

  • 浅拷贝只拷贝一层,当属性为对象时,拷贝的是地址,两个对象指向同一个地址
  • 深拷贝是完全拷贝(递归拷贝深层次),属性为对象时,新开辟栈,两个对象指向两个地址