小程序對象深拷貝與淺拷貝


最近在弄小程序項目的時候遇到了一個json對象復制的問題,也就是俗稱的深拷貝與淺拷貝了。

一般用變量直接接收就是淺拷貝,那么如何理解淺拷貝與深拷貝的意義呢?

淺拷貝:只是將對象地址的復制,並沒有開辟新內存棧,也就是說兩個變量都指向了同一個棧地址,對其中一個進行改變刪減時,
    另一個值也會同樣發生變化,這肯定不是我們想要的結果,例如以下方式直接調用

var oldObj = {"id":"1","name":"小紅帽","ages":"12","gender":1,"socre":"90"};
//如果像以下方式調用的時候,則是淺拷貝
var copyObj = oldObj;

深拷貝:則是拷貝對象后存放到一個新內存棧中保存,兩者指向不同的棧,改變其中的一個值並不會影響到另一個值

var oldObj = {"id":"1","name":"小紅帽","ages":"12","gender":1,"socre":"90"};
//深拷貝
var copyObj = JSON.parse(JSONStringify(oldObj));

好啦,關於深拷貝與淺拷貝的問題就到這,繼續敲碼....


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM