ES6展开运算符应用于数组拷贝的机制

  利用展开运算符进行数组拷贝,采用的是浅拷贝,即引用的是同一个内存地址。但是当两个数组其中一个进行了变动,发生变动的节点会重新开辟出内存空间,其它未改变的节点依然引用同样的内存块。具体看如下代码示例:

let a=[1,2,3];
let b=[4,5];
let c=[...a,...b];
console.log(a[0]===c[0]);//true
a[0]=9;
console.log(a[0]===c[0]);//false
console.log(a[1]===c[1]);//true

 

posted @ 2020-07-01 15:33  __sai  阅读(448)  评论(0编辑  收藏  举报