我们可以通过引用复制嵌套的JS对象的值吗?



假设我有这个嵌套对象说:

let x = {
'key1': {
'key1_1':'value 1.1',
'key1_2': 'value 1.2'
'key1_3': 'value 1.3'
}
}

我正在复制其中一个密钥作为

let y = x.key1;

现在我正在key1值更改为

let z =  {
'key1': {
'key1_1':'new value 1.1',
'key1_2': ' new value 1.2'
'key1_3': ' new value 1.3'
}
}
x.key1 = z.key1

现在如果我这样做

console.log(y.key1_1) //output: value 1.1    desired output: new value 1.1

我希望输出是最新的值,即new value 1.1有什么办法可以做到这一点吗?谢谢

如果您使用x.key1 = z.key1;,那么它将为x.key1创建新的引用,因此y.key1将具有与x.key1不同的reference

要根据您的期望获得结果,您可以使用Object.assign()方法,例如Object.assign(x.key1, z.key1);.

您可以在下面查看。

let x = {
'key1': {
'key1_1': 'value 1.1',
'key1_2': 'value 1.2',
'key1_3': 'value 1.3'
}
}
let y = x.key1;
let z = {
'key1': {
'key1_1': 'new value 1.1',
'key1_2': ' new value 1.2',
'key1_3': ' new value 1.3'
}
}
Object.assign(x.key1, z.key1);
console.log(y.key1_1)

最新更新