浅拷贝(直接理解为指针指向同一个内存、所以你修改arr1或者arr2  两者都会跟着修改)

var arr1 = [
{
name: 'arr1-1'
},
{
name: 'arr1-2'
}
]

var arr2 = [...arr1]

console.log(arr1)
console.log(arr2)
/**
[ { name: 'arr1-1' }, { name: 'arr1-2' } ]
[ { name: 'arr1-1' }, { name: 'arr1-2' } ]
*/
arr2[0].name = 'arr2-1'


console.log(arr1)
console.log(arr2)

/**
[ { name: 'arr2-1' }, { name: 'arr1-2' } ]
[ { name: 'arr2-1' }, { name: 'arr1-2' } ]
*/

深拷贝(直接理解为指针指向不同一个内存、所以你修改arr1或者arr2  两者不关联)

var arr1 = [
{
name: 'arr1-1'
},
{
name: 'arr1-2'
}
]

var arr2 = JSON.parse(JSON.stringify(arr1))

console.log(arr1)
console.log(arr2)
/**
[ { name: 'arr1-1' }, { name: 'arr1-2' } ]
[ { name: 'arr1-1' }, { name: 'arr1-2' } ]
*/
arr2[0].name = 'arr2-1'

console.log(arr1)
console.log(arr2)
/**
[ { name: 'arr1-1' }, { name: 'arr1-2' } ]
[ { name: 'arr2-1' }, { name: 'arr1-2' } ]
/*