Object.assign()的用法
阿新 • • 發佈:2021-01-30
技術標籤:vue
Object.assign方法用於物件的合併,將源物件(source)的所有可列舉屬性,複製到目標物件(target)。
例如:
const target = {a:1},
const source1 = {b:2}
const source2 = {c:3};
Object.assign(target, source1,source2);
target // {a:1,b:2,c:3}
Object.assign 方法的第一個引數是目標物件,後面的引數都是源物件。
注意:如果目標物件與源物件有同名屬性,或多個源物件有同名屬性,則後面的屬性覆蓋前面的屬性。
例如:
const target = {a:1, b:1};
const source1 = {b:2,c:2}
const source2 = {c:3}
Object.assign(target, source1, source2);
target // {a:1,b:2,c:3}
如果只有一個引數,Object.assign會直接返回該引數。
const obj = {a: 1};
Object.assign(obj) === obj // true
如果該引數不是物件,則會先轉成物件,然後返回。
typeof Object.assign(2) // "object"
由於undefined和null 無法轉成物件,所以如果它們作為引數,就會報錯。
Object.assign(undefined) // 報錯
Object.assign(null) // 報錯
如果非物件引數出現在源物件的位置(即非首引數),那麼處理規則有所不同。首先,這些引數都會轉成物件,如果無法轉成物件,就會跳過。
這意味著,如果undefined和null不在首引數,就不會報錯