Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.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 Object.assign是否覆盖原始引用?_Javascript - Fatal编程技术网

Javascript Object.assign是否覆盖原始引用?

Javascript Object.assign是否覆盖原始引用?,javascript,Javascript,我试图用“合并”两个对象,但不知何故原始对象被覆盖。请参见示例: varx={x:1}; 变量y={y:2}; var z=对象赋值(x,y); //我所期待的 console.log(z);//{“x”:1,“y”:2} //我没想到的 console.log(x);//{“x”:1,“y”:2}您需要像下面这样进行更改 var z = Object.assign({},x, y); 下面是正在工作的JSFIDLE:将空的{}传递给assign()作为第一个参数 varx={x:1};

我试图用“合并”两个对象,但不知何故原始对象被覆盖。请参见示例:

varx={x:1};
变量y={y:2};
var z=对象赋值(x,y);
//我所期待的
console.log(z);//{“x”:1,“y”:2}
//我没想到的

console.log(x);//{“x”:1,“y”:2}
您需要像下面这样进行更改

var z = Object.assign({},x, y);

下面是正在工作的JSFIDLE:

将空的
{}
传递给
assign()
作为第一个参数

varx={x:1};
变量y={y:2};
var z=Object.assign({},x,y);
console.log(z);//{“x”:1,“y”:2}

console.log(x);//{“x”:1}
必须提供一个空对象作为
对象的第一个参数。为要创建的新合并对象分配

var x={
x:1
};
变量y={
y:2
};
var z=Object.assign({},x,y);
//新对象
console.log(z);//{“x”:1,“y”:2}
//还是一样
console.log(x);//{“x”:1}

控制台日志(y);//{“y”:2}
这是因为您没有提供要合并到
对象中的新对象。assign({},x,y)在这里阅读更多:啊,伙计,我怎么能忽视这一点。。。谢谢大家:)第一件事应该是去看医生,然后一个人应该到这里。当然,如果文档没有意义;)@Jai,正如你在我的问题中看到的,我以前去过:)但我似乎有点太快了。。。