在本篇文章中,我們將介紹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 }