js 解決引用賦值導致修改新數組(對象)導致原數組(對象)跟着改變的問題


原因:JavaScript 中對象的賦值是默認引用賦值的(兩個對象指向相同的內存地址)

解決方案1:

用 JSON.stringify 把對象轉換成字符串,再用 JSON.parse 把字符串轉換成新的對象

function deepClone(obj){
  return JSON.parse(JSON.stringify(obj));    
}

  

解決方案2:

Object.assign()拷貝

當對象中只有一級屬性,沒有二級屬性的時候,此方法為深拷貝,但是對象中有對象的時候,此方法,在二級屬性以后就是淺拷貝。

let obj1 = {'name': 'hello world'};
let obj2 = Object.assign({},obj1);

let arr1 = [1,2,3,4,5];
let arr2 = Object.assign([],arr1);

  

  


免責聲明!

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



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