如果对象在Javascript中是不可变的,那么如何更新其值以及如何从其变量获取更新的值。
例如:
const todo = {
text: 'Eat',
completed: false
};
// To update todo completion to true
const updatedTodo = Object.assign({}, todo, { completed: true });
因为使用了
updatedTodo
,所以无法将新的Todo
重新分配给const
。如果将const
更改为let
并重新分配,这不会破坏不变性。我可能错过了一些东西。 最佳答案
todo
是不可变的,但其属性不是。您可以通过Object.assign(todo, { completed: true})
进行更改(请注意开始时没有空对象,实际上是通过修改todo
的方式),也可以通过todo.completed = true
对其进行简单设置。
关于javascript - 更新不可变对象(immutable对象)而不破坏javascript中的不可变性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60902372/