Spread syntax on objects

by Arnaud Buchholz

JavaScript

console.log({})

const obj1 = { a: 1 }
console.log({ ...obj1 }, Object.assign({}, obj1))

const obj2 = Object.create(obj1)
obj2.b = 2
console.log({ ...obj2 }, Object.assign({}, obj2))

const obj3 = {}
const symb1 = Symbol('symb1')
obj3[symb1] = 3
console.log({ ...obj3 }, Object.assign({}, obj3))

const obj4 = {}
Object.defineProperty(obj4, 'd', {
  value: 4,
  enumerable: false
})
console.log({ ...obj4 }, Object.assign({}, obj4))

const obj5 = ['a', 'b']
console.log({ ...obj5 }, Object.assign({}, obj5))