芜湖老码农
芜湖老码农
  • 发布:2021-12-20 04:09
  • 更新:2023-10-13 11:52
  • 阅读:465

太相信Object.assign了,花了2天时间找到问题。

分类:uni-app

以下代码,想象一下结果。

    const val = {  
        sex: 0,  
        age: {  
            x: 10  
        }  
    }  
    let a = {};  
    let b = {};  
    let aa = Object.assign(a, val);  
    let bb = Object.assign(b, val);  
    a.sex = 1;  
    a.age.x = 20;  
    console.log(a.sex, b.sex, aa.sex, bb.sex)  
    console.log(a.age.x, b.age.x, aa.age.x, bb.age.x)  

或许是我太low了,之前还从没太在意过这个问题。

改用JSON.parse(JSON.stringify(defaultOrder))

0 关注 分享

要回复文章请先登录注册

喜欢技术的前端

喜欢技术的前端

看怎么用呢,assign也是可以实现深拷贝的,let zs = {name:'张三'};let zs2 = Object.assign({},zs)即可
2023-10-13 11:52
苏陌

苏陌

建议去看看深拷贝和浅拷贝的区别 Object.assign是浅拷贝而JSON.parse(JSON.stringify(defaultOrder))是深拷贝
2021-12-20 09:04