當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
javascript --- 实现对象的深拷贝
生活随笔
收集整理的這篇文章主要介紹了
javascript --- 实现对象的深拷贝
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
淺拷貝和深拷貝
- 淺拷貝: 只拷貝一層.當對象是復雜數據類型(Object、 Array)時,只拷貝引用
- 深拷貝: 多層拷貝.復雜數據類型,會重新分配內存空間.
實現淺拷貝的2種方法
- 使用for ... in 實現
- 使用es6提供的方法Object.assign
上面用實現了將對象obj賦值給o. 但是,o中對屬性sex的操作.是引用操作.
即改變o.msg.sex屬性obj.msg.sex屬性也會改變.
實現深拷貝
很明顯上面并不是我們所需要的結果.
核心思路是,復雜數據類型賦值時先開辟內存空間.
嘗試使用遞歸實現拷貝,思路如下:
- 測試:
稍微改進一下
- 上面傳遞了2個參數,且沒有考慮日期和正則的情況
- 改變遞歸出來的條件
- 使用typeof判斷是否是 數組和對象的形式
- 但是使用 typeof === ‘object’ 會遺漏掉掉null的情況
- 然后使用instanceof來判斷正則和日期的形式
總結
以上是生活随笔為你收集整理的javascript --- 实现对象的深拷贝的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 五、Matlab 画图——万能的plot
- 下一篇: javascript --- 文件上传