It doesn't. But with objects, it's not a cheap operation to simply duplicate, and they aren't normally immutable like primitives. Furthermore, why is it for objects, not arrays?
(I'm pushing that second question as a point of potential confusion - remember the user.) On Wed, Apr 25, 2018, 11:45 Arutyunyan Artyom <arta...@ya.ru> wrote: > spread assignment not mutate, it reassign, like "+=" and other. > > if ( > ('a = {...a,...b}'.length > 'a ...= b'.length) === ('n = n+1'.length > 'n > += 1'.length) > ) { console.log('why "addition assignment" is necessary, but "spread > assignment" is not?'); } > > > > 25.04.2018, 18:21, "Isiah Meadows" <isiahmead...@gmail.com>: > > Note: `Object.assign` mutates its first argument and (with only obscure > caveats) does exactly this. Not sure syntax is necessary here. > > Oh, and arrays also have the common idiom `array.push(...values)` (but > they could use an `Array.prototype.pushAll` to avoid polluting arguments > lists). > > On Wed, Apr 25, 2018, 09:24 Артём Арутюнян <arta...@ya.ru> wrote: > > I propose *spread assignment operator*: > > *var obj = { test1: 1 };* > *var anotherObj = { test2: 2 };* > *obj ...= { test2: 2 }; // == (obj = { ...obj, ...anotherObj })* > *// { test1: 1, test2: 2 }* > > I'm surprised it wasn't in the original implementation > _______________________________________________ > es-discuss mailing list > es-discuss@mozilla.org > https://mail.mozilla.org/listinfo/es-discuss > >
_______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss