数组深拷贝
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对对象数组的拷贝,整个拷贝还是浅拷贝,仅适用于不包含引用对象的一维数组的深拷贝。
浙公网安备 33010602011771号