赋值、浅拷贝和深拷贝(数组和对象的深浅拷贝)

具体方法

  • Object.assign()
// Array
let arr = [1, 3, {
   username: 'kobe'
   }];
let arr2=arr.concat();    
arr2[2].username = 'wade';
  • Array.prototype.concat()
// object 当object只有一层的时候,是深拷贝
let obj = {
   username: 'kobe'
   };
let obj2 = Object.assign({},obj);
obj2.username = 'wade';
  • Array.prototype.slice()
// slice()
let arr = [1, 3, {
   username: ' kobe'
   }];
let arr3 = arr.slice();
arr3[2].username = 'wade'

补充说明:

  • Array的slice和concat方法不修改原数组,只会返回一个浅复制了原数组中的元素的一个新数组。

参考链接:
https://blog.csdn.net/xiasohuai/article/details/81086480

你可能感兴趣的:(赋值、浅拷贝和深拷贝(数组和对象的深浅拷贝))