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;
添加回答
舉報
