Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我们可以复制嵌套的JS对象吗';参考值是多少?_Javascript_Typescript - Fatal编程技术网

Javascript 我们可以复制嵌套的JS对象吗';参考值是多少?

Javascript 我们可以复制嵌套的JS对象吗';参考值是多少?,javascript,typescript,Javascript,Typescript,假设我有一个嵌套对象,比如: let x = { 'key1': { 'key1_1':'value 1.1', 'key1_2': 'value 1.2' 'key1_3': 'value 1.3' } } 我把其中一个密钥复制为 let y = x.key1; 现在我将key1值更改为

假设我有一个嵌套对象,比如:

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
我希望输出为最新值,即
新值1.1

有没有办法做到这一点?如果您使用
x.key1=z.key1,请感谢
然后它将为
x.key1
创建新的引用,因此
y.key1
将具有与
x.key1
不同的
引用

为了按照您的期望得到结果,您可以使用类似于
Object.assign(x.key1,z.key1)的方法

你可以在下面查看

设x={
“键1”:{
'键1_1':'值1.1',
'键1_2':'值1.2',
“键1_3”:“值1.3”
}
}
设y=x.key1;
设z={
“键1”:{
“key1_1”:“新值1.1”,
“key1_2”:“新值1.2”,
“key1_3”:“新值1.3”
}
}
赋值(x.key1,z.key1);

console.log(y.key1_1)
无法执行此操作。所有变量都是值。对于对象,该值是其引用。但是,如果您执行
a={};b=a
则两者都指向同一对象。但是,
a={foo:bar}
将更改
a
以指向不同的对象,它不会修改
b
指向的对象。您是否正在寻找
对象。分配(x.key1,z.key1)
?是的,我没有想过使用
对象。分配
以那种方式,这就是我一直在寻找的。