JS變量之間賦值,修改變量值,原變量會隨之改變的問題


現象:

  開發vue項目的過程中,需要多次用到一份基礎數據,為減少代碼量,提高一下復用效果,便用變量A來定義,在項目中需要用到時就用變量A進行賦值。

  在項目中調用時,我新定義一個變量B,再將變量A賦值給變量B,即B=A;

  期望的效果是,賦值之后,A和B是兩份數據,對變量B進行操作時不影響變量A,結果發現想的是一回事,敲出來的完全是另一回事,修改B變量時A變量也跟着改變了。

原因:

  請教了一下大佬,我們期待的是,B從A變量copy出一份數據,變成兩份一樣的基礎數據,操作B而不影響A,讓A始終保持原滋原味。但是B=A的方式只是將B指向A的存儲地址,實際上只有同一份數據,因此無論修改A還是B都是會互相影響的。

解決方法:

   B = JSON.parse(JSON.stringify(A))
先用SON.stringify(A)從A對象中解析出字符串,再用JSON.parse()將解析出的字符串轉換成JSON對象,這樣就會獲得兩份相同的數據啦,對B進行操作就不會影響到A啦


免責聲明!

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



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