一个对象如何复制给另一个对象,互不影响

1.使用 Object.assign() 方法复制对象

let  obj1 = { a: 0 , b: { c: 0}};
   let  obj2 = Object.assign({}, obj1);
   console.log(JSON.stringify(obj2));  // { a: 0, b: { c: 0}}
   
   obj1.a = 1;
   console.log(JSON.stringify(obj1));  // { a: 1, b: { c: 0}}
   console.log(JSON.stringify(obj2));  // { a: 0, b: { c: 0}}
   
   obj2.a = 2;
   console.log(JSON.stringify(obj1));  // { a: 1, b: { c: 0}}
   console.log(JSON.stringify(obj2));  // { a: 2, b: { c: 0}}
   
   obj2.b.c = 3;
   console.log(JSON.stringify(obj1));  // { a: 1, b: { c: 3}}
   console.log(JSON.stringify(obj2));  // { a: 2, b: { c: 3}}
 
2.简单粗暴的方法  结束两个对象的关联性的问题
   let obj1 = { a: 0 , b: { c: 0}};
    let  obj3 = JSON.parse(JSON.stringify(obj1));
    obj1.a = 4;
    obj1.b.c = 4;
    console.log(JSON.stringify(obj3));  // { a: 0, b: { c: 0}}
 
 

猜你喜欢

转载自www.cnblogs.com/daiwenru/p/9139810.html