Skip to content
Advertisement

Why can’t we destruct objet and in order to create new variable : JS

Can someone explain me the reason why :

const param = {hello: "Hello", world: "world", name: "Patrick"}
const variable = {hello, world} = param;

Will set my variable to :

{hello: "Hello", world: "world", name: "Patrick"}

And not

{hello: "Hello", world: "world"}

Or even undefined why taking this choice ?

I’m curious !

Advertisement

Answer

The value of an assignment expression is the right-hand side of the assignment. So {hello, world} = param performs a destructuring assignment to hello and world, but its value is the entire param object. This is then used as the value in the initialization of variable. So it’s effectively equivalent to:

const variable = (hello = param.hello, world = param.world, param);

Note also that you’re not declaring the hello and world variables, these are just being assigned. They’ll be global variables if they’re not previously declared in the scope.

User contributions licensed under: CC BY-SA
9 People found this is helpful
Advertisement