美文网首页
2019.2.16 如何防止对象变化影响其它值

2019.2.16 如何防止对象变化影响其它值

作者: Axe小莱 | 来源:发表于2019-02-16 16:54 被阅读0次
    • 今天做一个功能的时候发现一个问题
    item.fileName = '测试1'
    arr.push(item)
    item.fileName = '测试2'
    arr.push(item)
    
    • 原本以为得到的数组中会有测试1和测试2两个对象,但是实际不是,只有两个测试2对象,为什么,因为他们都是指向的一个内存空间,所以一个值的变化,会导致另一个同步变化
    如何解决这种问题?
    • 那就要不要再原对象中修改,要新建一个对象,方法有两种
    1. Object.assign({}, oldObj)
    let newItem = Object.asign({}, item)
    
    1. 使用JSON.stringify() JSON.parse() 这个不建议,如果对象的value中有方法的话,转化过程中会出问题
    let newItem = JSON.stringify(item)
    newItem = JSON.parse(newItem)
    

    相关文章

      网友评论

          本文标题:2019.2.16 如何防止对象变化影响其它值

          本文链接:https://www.haomeiwen.com/subject/mdqieqtx.html