数组深拷贝

js五种基本类型才可以用‘=’来进行直接拷贝。
引用类型不能直接用‘=’来进行拷贝。
引用类型用‘=’只是引用堆中的地址,当内存栈中的值发生改变,其值也跟着改变。
深拷贝的核心思想就是将引用类型展开成基本类型,再进行拷贝。

数组深拷贝的方法
1.遍历(仅限于一层,数组的item是基本类型)
2.ES6展开符...(仅限于一层,数组的item是基本类型)

let a = [1, 2, 3, 4]
let b = [...a]

3.concat()函数

let a= [1,2,3,4]
let b = a.concat()

4.slice()函数

var arr1 = ["1","2","3"]
var arr2 = arr1.slice(0)

slice, concat方法的局限性
使用slice和concat对对象数组的拷贝,整个拷贝还是浅拷贝,仅适用于不包含引用对象的一维数组的深拷贝。

posted on 2019-08-01 11:14  bingery  阅读(170)  评论(0)    收藏  举报

导航