vue——賦值后修改,原對象信息也會發生變化


問題:

  在通過  let a = b  將b數據賦值給a,通過a修改a的值如:a.id = 1,b的id也會變為1。

原因:

  在VUE中【=】在對象賦值里面,沒有進行深層賦值,【let datas】指向的依舊是【datas】里面的原地址,所以修改了【let datas】里面的屬性,【datas】里面的屬性也會發生改變。

解決方法

  方法一:

創建一個新的對象,指向新的內存地址,通過JSON解析。同 handleClick2

let datas = JSON.parse(JSON.stringify(this.datas));

  方法二:

es6之展開Object.assign(拷貝obj的內容到一個新的堆內存,copyObj存儲新內存的引用),同handleClick3

let datas = Object.assign({},this.datas);

  方法三:

es6之展開運算符(僅用於數組)同handleClick4

let copyArr = [...obj];

 

此貼僅為記錄。

原帖地址:https://www.cnblogs.com/e0yu/p/14972775.html

 


免責聲明!

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



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