初投稿の記事になります。
1つのオブジェクトを展開し、変数に代入してみる
a.js
const userObject = { userName: 'John', age: 20, city: 'New York' }
const userObjectCopy = { ...userObject }
console.log(userObjectCopy)
{ userName: 'John', age: 20, city: 'New York' }
2つのオブジェクトを展開し、変数に代入してみる
b.js
const personObject = { userName: 'John', age: 20 }
const dataObject = { city: 'New York', job: 'Engineer' }
const mergedUserObject = { ...personObject, ...dataObject }
console.log(mergedUserObject)
{ userName:"John", age:20, city:"New York", job:"Engineer"}
(発展)2つのオブジェクトに同じプロパティがある場合
c.js
const personObject = { userName: 'John', city: 'New York' }
const dataObject = { city: 'Tokyo', job: 'Engineer' }
const mergedUserObject = { ...personObject, ...dataObject }
console.log(mergedUserObject)
両オブジェクトとも、cityプロパティを持っているが果たして結果は…
{ userName:"John", city:"Tokyo", job:"Engineer"}
dataObjectオブジェクトの値("Tokyo")が採用されていることが確認できた。
2つのオブジェクト間でプロパティが競合した場合、2つ目のオブジェクトの値が採用される。(後勝ちとなる。)