首頁 > web前端 > js教程 > 淺談JavaScript中物件導向的深拷貝和淺拷貝

淺談JavaScript中物件導向的深拷貝和淺拷貝

高洛峰
發布: 2017-01-03 16:01:00
原創
928 人瀏覽過

理解深拷貝和淺拷貝之前需要弄清楚一些基礎概念,記憶體中儲存的變數類型分為值類型和引用類型。

1、值類型賦值的儲存特性, 將變數內的資料全部拷貝一份, 儲存給新的變數。

例如:var num = 123 ;var num1=num;

表示變數中儲存的數字是 123。然後將資料拷貝一份,就是將 123 拷貝一份. 那麼記憶體中有 2 個 數組;將拷貝資料賦值給 num2,其特點是在記憶體中有兩個資料副本.這可以理解為淺拷貝。

2、引用型別的賦值。

var o={name:'張三‘};

var obj=o;

賦值就是將 變數 o 中儲存的資料拷貝一份, 然後將該資料賦值給 obj。記憶體中有 1 分數據,利用 obj 修改的 name 屬性會影響 o 中的 name。

如果拷貝的時候, 將數據的所有引用結構都拷貝一份, 那麼數據在內存中獨立就是深拷貝;

如果拷貝的時候, 只針對當前對象的屬性進行拷貝, 而屬性是引用類型這個不考慮, 那麼就是淺拷貝;

拷貝: 複製一份. 指將物件資料複製;

在討論深拷貝與淺拷貝的時候一定要保證物件的屬性也是引用型別。

以上這篇淺談JavaScript中物件導向的深拷貝和淺拷貝就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持PHP中文網。

更多淺談JavaScript中物件導向的深拷貝和淺拷貝相關文章請關注PHP中文網!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板