<div dir="ltr">I tried to see if I could do this in a single destructuring step, but here is what happened:<br><br>```<div>var user = { profile: { firstName: 'Bob', lastName: 'Ruffward', x: 'hi' } }<br></div><div>var obj = { ...({firstName, lastName} = user.profile), otherData: 'otherData' }<br></div><div>```<br></div><div><br></div><div>So... what happened? (I'm sure you all know already)</div><div><br></div><div>`obj` ended up with _all_ of `user.profile`'s properties:</div><div>```</div><div>{ firstName: "Bob", lastName: "Ruffward", x: "hi", otherData: "otherData" }<br></div><div>```</div><div>and `firstName` and `lastName` were assigned as global variables.</div><div><br></div><div>```</div><div>firstName \\ "Bob"<br>lastName \\ "Ruffward"<br></div><div>```</div><div><br clear="all"><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature">--------------------------<br>Dammit babies, you've got to be kind.</div></div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, 26 May 2019 at 15:56, Григорий Карелин <<a href="mailto:grundiss@gmail.com">grundiss@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Yep, in the same way as destructuring would work</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">вс, 26 мая 2019 г. в 17:52, guest271314 <<a href="mailto:guest271314@gmail.com" target="_blank">guest271314@gmail.com</a>>:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">If not found in source ```firstName``` and/or ```lastName``` would be assigned the value ```undefined```?</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, May 26, 2019 at 1:40 PM Григорий Карелин <<a href="mailto:grundiss@gmail.com" target="_blank">grundiss@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Wouldn't it be nice to have syntax like this:<br><span style="background-color:rgb(204,204,204)">const obj = { {firstName, lastName from user.profile}, otherData: 'other data'  };</span><br>as a syntactic sugar for<br><span style="background-color:rgb(204,204,204)">const obj = {firstName: user.profile.firstName, lastName: user.profile.lastName, otherData: 'other data'};</span><br><br>Of cause at the moment we can write it in two steps:<br><span style="background-color:rgb(204,204,204)">const {fistName, lastName} = userProfile;<br>const obj = {firstName, lastName, otherData: 'other data'}<br></span><br>But why use extra variables?<br><br>Motivating example is lodash's .pick() method: <a href="https://lodash.com/docs/#pick" target="_blank">https://lodash.com/docs/#pick</a><br></div>
_______________________________________________<br>
es-discuss mailing list<br>
<a href="mailto:es-discuss@mozilla.org" target="_blank">es-discuss@mozilla.org</a><br>
<a href="https://mail.mozilla.org/listinfo/es-discuss" rel="noreferrer" target="_blank">https://mail.mozilla.org/listinfo/es-discuss</a><br>
</blockquote></div>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail-m_1349747048896269962gmail_signature">С уважением,<br>Карелин Григорий</div>
_______________________________________________<br>
es-discuss mailing list<br>
<a href="mailto:es-discuss@mozilla.org" target="_blank">es-discuss@mozilla.org</a><br>
<a href="https://mail.mozilla.org/listinfo/es-discuss" rel="noreferrer" target="_blank">https://mail.mozilla.org/listinfo/es-discuss</a><br>
</blockquote></div>