更新不可变对象而不破坏javascript中的不变性

问题描述 投票:1回答:1

如果对象在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并重新分配,那不会破坏不变性。我可能缺少一些东西。

javascript object immutability
1个回答
0
投票

todo是不可变的,但其属性不是。您可以通过Object.assign(todo, { completed: true})进行更改(请注意开始时没有空对象,这样实际上会修改todo),也可以通过todo.completed = true进行简单设置。

© www.soinside.com 2019 - 2024. All rights reserved.