在本篇文章中,我們將介紹JavaScript中的Object.assign()方法。

這個方法在ES2015中引入,它將一個或多個物件的可枚舉自身屬性複製到另一個物件中。

它的主要用途是創建一個對象的淺拷貝。

const copied = Object.assign({}, original)

由於是淺拷貝,值被複製,對象引用被複製(而不是對象本身),所以如果在原始對象上編輯一個對象屬性,則在複製的對象中也會修改,因為內部引用的對象是相同的:

const original = {
 name: 'Fiesta',
 car: {
 color: 'blue'
 }
}
const copied = Object.assign({}, original)

original.name = 'Focus'
original.car.color = 'yellow'

console.log(copied.name) // Fiesta
console.log(copied.car.color) // yellow

我們提到了"一個或多個":

const wisePerson = {
 isWise: true
}
const foolishPerson = {
 isFoolish: true
}
const wiseAndFoolishPerson = Object.assign({}, wisePerson, foolishPerson)

console.log(wiseAndFoolishPerson) //{ isWise: true, isFoolish: true }