Eda Eren

  • JavaScript

Spread operator doesn't spread inherited properties

The spread operator only spreads the enumerable own properties of an object, not any inherited ones:

let o = Object.create({ x: 1 }); // o inherits the property x
let p = { ...o };
p.x // => undefined
let o = Object.create({ x: 1 }); // o inherits the property x
let p = { ...o };
p.x // => undefined

See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_syntax#description