问一下深浅拷贝的问题

82 阅读1分钟
let array1 = [
  {
    name: 'a',
    id: '1',
    fun: () => {
      return 0
    },
  },
  {
    name: 'b',
    id: '2',
  },
]
let array2 = [...array1]

array1.push('3')
array2.push('2')
array1[0].name = 'c'
console.log(array1)
// output: Array [Object { name: "c", id: "1", fun: ()=>{return 0} }, Object { name: "b", id: "2" }, "3"]
console.log(array2)
// output: Array [Object { name: "c", id: "1", fun: ()=>{return 0} }, Object { name: "b", id: "2" }, "2"]

这里面的push已经改变了array1的数据,使用扩展运算符浅拷贝来的array2为啥没有获取到push进去的3?