Object.assign/create may be a better choice if it is uncertain if the object changes afterwards.
But this can also be very useful if you want to combine multiple objects into a single object, by using the spread operator:
const a = {a:true}
const b = {b:[],c:false}
const obj = {...a, ...b} // {"a":true,"b":[],"c":false}
Same can be done with arrays as well (also to get unique values with [...new Set(array)], but we are getting distracted ;))