最近在弄小程序項目的時候遇到了一個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));
好啦,關於深拷貝與淺拷貝的問題就到這,繼續敲碼....