Object函數提供了一個叫做assign的函數,用來合並多個對象。
Object.assign(...);
你可以傳遞多個對象給該函數,這些對象中的自有且可枚舉的屬性,會被拷貝給第一個對象。
var a={name:'jack'};
var b={age:10};
Object.assign(a,b);
console.log(a) // 'Object {name: "jack", age: 10}'
該方法會修改傳入的第一個對象,所以要小心這種改變,由於,函數會在最后return這第一個對象,
你可以傳一個{},作為函數的第一個實參,這樣剩下對象的自有且可枚舉的屬性,會被拷貝到這個空對象中並返回這個對象,這樣可以避免不需要的修改。
var a={name:'jack'};
var b={age:10};
var c=Object.assign({},a,b);
console.log(c) // 'Object {name: "jack", age: 10}'
對於重復出現的屬性,會被相對於右邊的值覆蓋,因為該函數是從左到右操作參數的。
所以,實參的順序會影響到最終的結果。
var a={name:'jack'};
var b={name:10};
Object.assign(a,b);
console.log(a); // 'Object {name: 10}'
.