1

我正在审查 PR,我发现了将新属性分配给对象的以下选择。

foo = { 
  ...foo, 
  bar: "value" 
};

我想知道这样做是否有什么好处,而不是仅仅为了

foo.bar= "value";

谢谢!

4

1 回答 1

2

就在这里。通过按照您展示的方式进行操作,您将在内存中创建一个全新的对象,而不是改变现有的对象。换句话说,这是一个不可变的操作。

进行不可变操作的通常原因是它可以更快地进行相等检查,因为它只是一个单一的引用检查,而不是必须深入比较对象的所有属性。

于 2019-11-21T18:12:27.550 回答