3 回答
TA贡献1805条经验 获得超10个赞
我想出了一个解决方法
我真正想要的是为 user.info.foo.bar 分配“foo”的值,而不是直接为它分配那个值。我可以通过使“bar”成为一个函数并将一个值传递给它并将 user.info.foo.bar 设置为该值来解决问题;
const bar = (value)=>{
user.info.foo.bar = value;
return value
}
如果我这样做,我可以使用我想要的任何值调用 bar,并且 user.info.foo.bar 将等于该值,而无需直接将其设置为等于该值(这是我真正想要的)。
结果:
console.log(bar("foo")); // "foo"
console.log(user.info.foo.bar); // "foo"
TA贡献1856条经验 获得超11个赞
为避免数据库中原始对象发生突变,请先克隆它。解决方法如下:
let userInfo = {...user.info}
let bar = 'foo'
userInfo.foo.bar = bar
N/B:“bar”是一个新的内存地址,因此重新分配对数据库中的“user.info”对象没有影响。
TA贡献1801条经验 获得超16个赞
当你分配
let bar = user.info.foo.bar;
bar 的值用 user.info.foo.bar 的当前值更新。. 当您更改 bar 的值时,它不会反映出来,因为我们没有添加任何内容来修改 user.info.foo.bar 的值。
你可以做的是设置
user.info.foo.bar="foo";
let bar = user.info.foo.bar;
添加回答
举报
