【发布时间】:2017-08-29 01:38:52
【问题描述】:
在关于不可变更新模式的 redux 文档中,我注意到他们说您可以通过使用扩展运算符然后覆盖属性来更新对象。
对象扩展运算符有什么特别之处吗?如果不是,那为什么你可以在不改变数据的情况下覆盖对象字面量定义中的属性(如下面的代码)?
const a = {
foo: 'bar',
foo: 'bla'
}
【问题讨论】:
-
尚不清楚
...扩展语法与接受多个相似键的对象字面量语法有何关联。 -
“为什么你可以覆盖”——因为标准允许这样做。
-
具有重复键的对象是您的 linter 应该发现的错误。 (这甚至在旧浏览器中都不起作用,他们只在 ES6 中允许这样做,因为他们不知道如何处理计算属性)。
-
"您可以使用扩展运算符更新对象" - 不!扩展语法是对象字面量的一部分,它创建一个新对象。
-
@Bergi ecma-international.org/ecma-262/5.1/#sec-11.1.5 在 es2015 之前真的被禁止了吗?
标签: javascript