gpt4 book ai didi

javascript - 您可以在不改变数据的情况下覆盖对象字面量定义中的属性吗?

转载 作者:行者123 更新时间:2023-12-03 03:34:30 26 4
gpt4 key购买 nike

在有关不可变更新模式的 redux 文档中,我注意到他们说您可以通过使用扩展运算符然后覆盖属性来更新对象。

对象扩展运算符有什么特别之处吗?如果不是,那么为什么可以覆盖对象字面量定义中的属性(如下面的代码所示)而不改变数据?

const a = {
foo: 'bar',
foo: 'bla'
}

最佳答案

在对象字面量中,我们可以使用扩展运算符 (...) 它将属性从给定对象插入到对象字面量...所以如果你有:

const a = {
foo: 'bar',
test: 'test'
}

可以使用对象字面定义中的扩展运算符创建新对象..

const b = {
...a, //spread operator that introduces object properties
foo:'bla'
}

b 对象将是

{ foo: 'bla', test: 'test' }

考虑到如果两个属性具有相同的名称,则顺序将定义哪个属性优先并且实际上我们可以覆盖对象文字中的属性定义。

如果定义是:

const b = {
foo:'bla',
...a, //the spread operator is defined at the end
}

b 对象将是:

{foo: "bar", test: "test"}

引用this article

注意:这是一个 ES2018 提案,目前在 chrome 中运行..

关于javascript - 您可以在不改变数据的情况下覆盖对象字面量定义中的属性吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45929482/

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