我试图"合并"两个具有Object.assign()的对象,但不知何故原始对象被覆盖。参见示例:
var x = {x:1};
var y = {y:2};
var z = Object.assign(x, y);
// what I've expected
console.log(z); // {"x": 1, "y": 2}
// what I haven't expected
console.log(x); // {"x": 1, "y": 2}

答案 0 :(得分:2)
必须提供一个空对象作为Object.assign
的第一个参数,以便创建一个新的合并对象。
var x = {
x: 1
};
var y = {
y: 2
};
var z = Object.assign({}, x, y);
// new object
console.log(z); // {"x": 1, "y": 2}
// still the same
console.log(x); // {"x": 1}
console.log(y); // {"y": 2}
答案 1 :(得分:1)
答案 2 :(得分:1)
将空{}
传递给assign()
作为第一个参数。
var x = {x:1};
var y = {y:2};
var z = Object.assign({},x, y);
console.log(z); // {"x": 1, "y": 2}
console.log(x); // {"x": 1}