gpt4 book ai didi

javascript - 更新不可变对象(immutable对象)而不破坏 JavaScript 中的不变性

转载 作者:行者123 更新时间:2023-11-28 03:02:06 33 4
gpt4 key购买 nike

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

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com