1、基本概念數組
Object.assign方法用來將源對象(source)的全部可枚舉屬性,複製到目標對象(target)。它至少須要兩個對象做爲參數,第一個參數是目標對象,後面的參數都是源對象。
Object.assign(target, source_1, ..., source_n)
2、基本用法函數
let target = {a: 1}; let object2 = {b: 2}; let object3 = {c: 3}; Object.assign(target,object2,object3); // 第一個參數是目標對象,後面的參數是源對象 target; // {a: 1, b: 2, c: 3}
須要注意的是,spa
Object.assign(null); // TypeError: Cannot convert undefined or null to object Object.assign(undefined); // TypeError: Cannot convert undefined or null to object 當參數不止一個時,null 和 undefined 不放第一個,即不爲目標對象時,會跳過 null 和 undefined ,不報錯 Object.assign(1,undefined); // Number {1} Object.assign({a: 1},null); // {a: 1} Object.assign(undefined,{a: 1}); // TypeError: Cannot convert undefined or null to object
3、擴展運算符code
對象的擴展運算符(...
)用於取出參數對象的全部可遍歷屬性,拷貝到當前對象之中。因爲數組是特殊的對象,因此對象的擴展運算符也能夠用於數組。對象
對象的擴展運算符等同於使用Object.assign()
方法。blog
let aClone = { ...a }; // 等同於 let aClone = Object.assign({}, a);
var phoneInfo= { areaCode: '', phone: '' } var z = { ...phoneInfo, areaCode: "86" } //等同於 var z = Object.assign({}, phoneInfo, { areaCode: 86 })