Why do I need parentheses around destructuring assignment?

Viewed 694

Suppose I have this function:

const testFunction = () => {
  const item_one = 1
  const item_two = 2
  return { item_one, item_two }
}

When I'm destructuring the return value from this function like this

let item_one, item_two; // the variables are defined elsewhere

{ item_one, item_two } = testFunction() // <-- Syntax error: Unexpected token "="

I'm getting a syntax error.

Instead when I'm doing

1)

let { item_one, item_two } = testFunction() // not suitable since I need to reassign

or

2)

let item_one, item_two;
({ item_one, item_two } = testFunction())

the code executes as expected.

Could someone explain why do I need the parentheses around the assignment in 2. and why do I get a syntax error?

Thanks!

0 Answers
Related