關於Object.assign與 JSON.parse(JSON.stringify())


假如源對象的屬性值是一個指向對象的引用,它也只拷貝那個引用值。例如:

var arr = [a,b,{c:111}],

var val={c:222}

var copy = Object.assign(arr[2], val);

此時,arr [2].c 和 copy.c指向的還是一個同一個對象。

Object.assign() 只是一級屬性復制,比淺拷貝多深拷貝了一層

標准(安全)JSON格式的對象深拷貝可以用這個: const arr = JSON.parse(JSON.stringify(val)); 

 

如果是單層操作,可以使用擴展運算

 var copy = {...arr}; 

如果不用合並操作的話,可以直接使用字符串互轉即可

 var copy = JSON.parse(JSON.stringify(arr)); 


免責聲明!

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



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