當前位置:編程學習大全網 - 網站源碼 - 深拷貝和淺拷貝的區別

深拷貝和淺拷貝的區別

壹、概念

1、淺拷貝

淺拷貝只復制某個對象的引用,而不復制對象本身,新舊對象還是***享同壹塊內存

2、深拷貝

深拷貝會創造壹個壹摸壹樣的對象,新對象和原對象不***享內存,修改新對象不會改變原對對象。

二、方法

1、淺拷貝

a、Object.assign()

Object.assign()方法可以把任意多個的源對象自身的可枚舉屬性拷貝給目標對象,然後返回目標對象。Object.assign()拷貝的是對象的屬性的引用,而不是對象本身。

2、深拷貝

a、JSON轉換

let newObj = JSON.parse(JSON.stringify(obj))。

缺點:

1) 如果對象有函數,函數無法被拷貝下來

2)無法拷貝對象原型鏈上的屬性和方法

3)當數據的層次很深,會棧溢出

  • 上一篇:家訪源代碼
  • 下一篇:愛上網約到家是正規的嗎
  • copyright 2024編程學習大全網