如果对象在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/

10-12 23:21