首页 > 解决方案 > 为什么解构赋值需要括号?

问题描述

假设我有这个功能:

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

当我像这样解构这个函数的返回值时

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

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

我收到语法错误。

相反,当我在做

1)

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

或者

2)

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

代码按预期执行。

有人可以解释为什么我需要在 2. 中的赋值周围加上括号,为什么会出现语法错误?

谢谢!

标签: javascriptobjectdestructuring

解决方案


推荐阅读