问题:通过拷贝赋值后,所有的对象的name居然都是C

js对象拷贝遇到的坑

 

test(){
    let person = [{'name':'danny'}]
    let names = ['A','B','C']
    let temp = []
    names.forEach(name => {
        let newPerson = person[0]
        newPerson.name = name
        temp.push(newPerson)
    })
    console.log(temp);
}

 解决办法:通过JSON来转换赋值(据说是深浅拷贝的问题)

let newPerson = JSON.parse( JSON.stringify(person[0]) )

js对象拷贝遇到的坑

 

参考:http://www.cnblogs.com/kaidarwang/p/6559123.html

相关文章:

  • 2021-12-29
  • 2021-12-19
  • 2022-12-23
  • 2021-09-27
  • 2021-07-14
  • 2021-12-02
  • 2021-10-26
猜你喜欢
  • 2022-02-17
  • 2022-01-25
  • 2021-12-23
  • 2022-01-01
  • 2021-12-31
  • 2022-01-31
  • 2021-06-02
相关资源
相似解决方案