JS中对象赋值assign()

现需要在js中,使用一个新的对象的值覆盖旧有对象,js中有一个方法:
Object.assign(target,…sources)
当target和sources对象中有相同的key时,在target对象中的值会被后面source对象的值覆盖。

var o1 = { a: 1 };
var o2 = { b: 2 };
var o3 = { c: 3 };

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对象自身会被修改
console.log(o2); // {  b: 2}, target对象自身会被修改

console.log(o3); // {  c: 3 }, target对象自身会被修改


如果想要避免o1被改变,需要这样写:

var obj = Object.assign({},o1,o2,o3);//给一个空对象作为target,这样改变的是空对象
console.log(obj);// { a: 1, b: 2, c: 3 }
console.log(o1); // { a: 1}
————————————————

原文链接:https://blog.csdn.net/qq_35938548/article/details/79281795

posted @ 2022-04-01 14:35  炽橙子  阅读(184)  评论(0编辑  收藏  举报