现需要在js中,使用一个新的对象的值覆盖旧有对象,js中有一个方法: Object.assign(target,…sources) 当target和sources对象中有相同的key时,在target对象中的值会被后面source对象的值覆盖。
方法/步骤
1
首先定义对象,代码如下:var o1 = { a: 1 };var o2 = { b: 2 };var o3 = { c: 3 };
2
第二步使用assign方法,注意代码如下:var obj = Object.assign(o1, o2, o3);console.log(obj); // { a: 1, b: 2, c: 3 }console.log(o1); // { a: 1, b: 2, c: 3 }, target对象自身会被修改
3
注意如果想要避免o1被改变,需要这样写:var obj = Object.assign({},o1,o2,o3);//给一个空对象作为target,这样改变的是空对象console.log(obj);// { a: 1, b: 2, c: 3 }console.log(o1); // { a: 1}