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

Reply via email to