如何通过引用将对象属性复制到另一个对象

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

我希望能够通过引用将多个对象的属性捆绑到另一个对象中,这样当我更改捆绑对象中的属性时,它就会改变原始对象。我正在使用展开运算符将对象属性分配给新对象。

objectA = {"key1" : 1, "key2" : 2, "key3" : 3}
objectB = {"key4" : 4, "key5" : 5, "key6" : 6}

bigObject = {...objectA, ...objectB}
bigObject["key1"] = 50;

Logger.log(bigObject["key1"]) //outputs 50
Logger.log(objectA["key1"]) //outputs 1

我知道Javascript按值复制,除非你复制对象,但我不想要一个对象的对象,我想要一个来自其他对象的属性的对象。有什么办法可以实现这一点吗?预先感谢。

javascript object reference mutate spread-syntax
1个回答
0
投票

您可以使用 Object.assign(target,source)

Object.assign()静态方法将所有可枚举的自有属性从一个或多个源对象复制到目标对象。它返回修改后的目标对象。

参数 target – 目标对象 – 将源属性应用到什么,修改后返回。
源 – 源对象 – 包含您要应用的属性的对象。

返回 目标物体。

文字形式:
MDN-Object.assign()

objectA = {"key1" : 1, "key2" : 2, "key3" : 3} objectB = {"key4" : 4, "key5" : 5, "key6" : 6} bigObject = objectA Object.assign(bigObject,objectB) bigObject["key1"] = 50; console.log(bigObject["key1"]) //outputs 50 console.log(objectA["key1"]) //outputs 50 console.log(bigObject); //outputs { key1: 50, key2: 2, key3: 3, key4: 4, key5: 5, key6: 6 }

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