Object.assign 是淺拷貝還是深拷貝


Object.assign()拷貝

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

 const obj = { a: 3, b: 4, c: { d: 66, e: 77 } }
 const obj2 = (<any>Object).assign({}, obj)
 obj.a = 1;
 obj.b = 2;
 obj.c.d = 55;
 obj.c.e = 88;
 console.log(obj2)

  

 

 

深拷貝 

改變原對象,新對象不受影響.

var obj = {name:'張三'};
var str;
var newObj = {};
str = JSON.stringify(obj),   //序列化對象
newObj = JSON.parse(str);    //還原
obj.name = '李四';
console.log(newObj);

  

 


免責聲明!

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



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