对arr1的操作会影响arr :

1
2
3
4
5
6
7
let arr=[1,2,3]
let arr1=arr

arr1.push(4)

console.log(arr)
console.log(arr1)


浅拷贝可以concat一下arr,这时对arr1的操作就不会影响arr了

1
2
3
4
5
6
7
let arr=[1,2,3]
let arr1=arr.concat([])

arr1.push(4)

console.log(arr)
console.log(arr1)

但如果arr里有一个json的话,浅拷贝后依然会影响arr

1
2
3
4
5
6
7
let arr=[{a:12,b:5},2,3]
let arr1=arr.concat([])

arr1[0].a++

console.log(arr)
console.log(arr1)

最简单的深拷贝

1
2
3
4
5
6
7
 let arr=[{a:12,b:5},2,3]
let arr1=JSON.parse(JSON.stringify(arr))

arr1[0].a++

console.log(arr)
console.log(arr1)