1. 程式人生 > >JS中物件賦值assign()

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物件自身會被修改

如果想要避免o1被改變,需要這樣寫:

var obj = Object.assign({},o1,o2,o3);//給一個空物件作為target,這樣改變的是空物件
console.log(obj);// { a: 1, b: 2, c: 3 }
console.log(o1); // { a: 1}