For some unknown reason, I can't get object spread to work in my code. I'm having to fall back on 'Object.assign()', but would rather use '...'
The following works:
const frederick = {
  name: 'Frederick Douglass',
  canRead: false,
  canWrite: false
};
// create new object and mutate that one
const selfEducate = person =>
  Object.assign({}, person,
    {canRead:true},
    {canWrite:true}
  );
console.log(selfEducate(frederick));  // { name: 'Frederick Douglass', canRead: true, canWrite: true }
console.log(frederick);  // { name: 'Frederick Douglass', canRead: false, canWrite: false }
However, the following does not:
const frederick = {
  name: 'Frederick Douglass',
  canRead: false,
  canWrite: false
};
const selfEducate = person =>
  ({
    ...person,
    canRead: true,
    canWrite: true
  });
console.log(selfEducate(frederick));
console.log(frederick);
That one errors out with:
SyntaxError: Unexpected token ...
The spread operator does work in other code of mine that involves copying arrays, but not in this example. Any feedback would be appreciated.
 
     
     
    