问题源于
{...}运算符在Javascript中具有多种含义。当
{出现在 Statement 的开头时,它将始终代表一个块,该块不能分配给该块。如果它稍后在 Statement中 作为expression出现,则它将表示一个Object。将
var有助于使这种区别,因为它不能跟一个 声明 ,如将分组括号:
( {a, b} = objectReturningFunction() );根据他们的文档:
注意:当使用不带声明的对象文字解构分配时,必须在赋值语句周围加上括号(…)。
{a,b} = {a:1,b:2}是无效的独立语法,因为左侧的{a,b}被认为是一个块,而不是对象文字。
但是,({a,b} = {a:1,b:2})是有效的,var {a,b} = {a:1,b:2}也有效
您的(…)表达式必须以分号开头,或者可以将其用于执行上一行的功能。



