object - How to interpret the [which]: part for the JavaScript expression ( { [which]: o[which] } = bar() ); -


i have encountered following code online:

function bar() {     return {         x: 4,         y: 5,         z: 6     }; }  var = "x",     o = {};  ( { [which]: o[which] } = bar() );  console.log( o.x ); 

i understand code example of "destructuring syntax" introduced in es6.

i understand o[which] searching key named which in object o , if found, return value which key.

but i'm not sure how [which]: part of expression works.

in destructuring syntax, when see from : to, means value of property identified from taken thing being destructured , assigned variable or property identified to. looking @ line:

( { [which]: o[which] } = bar() ); 

...we see value of property identified [which] retrieved object returned bar , assigned property identified o[which]. since [which] used rather which, it's value of which variable determines name of property taken bar's returned object, when use brackets syntax when retrieving or setting value of property on object.

the non-destructuring version this:

const tmp = bar(); o[which] = tmp[which]; 

Comments

Popular posts from this blog

resizing Telegram inline keyboard -

command line - How can a Python program background itself? -

php - "cURL error 28: Resolving timed out" on Wordpress on Azure App Service on Linux -