在整个变量表达式中使用()的javascript语法是什么? ({body:{customer}}}=wait callCreateCustomer({ 电子邮件:createRandomEmailAddress(), 关键字:999, 密码:“password”, }));

在整个变量表达式中使用()的javascript语法是什么? ({body:{customer}}}=wait callCreateCustomer({ 电子邮件:createRandomEmailAddress(), 关键字:999, 密码:“password”, }));,javascript,Javascript,我不明白当你对整个表达式有()的时候是什么意思 它的作用是什么?它强制表达式上下文,这样第一个{就不会被视为一个表达式的开始。这是一个没有声明的分解赋值。这里customer变量已经在上面声明了,并且一个值被分配给response.body.customer 从: 在使用不带声明的对象文字解构赋值时,需要在赋值语句周围加括号(…) {a,b}={a:1,b:2}不是有效的独立语法,因为左侧的{a,b}被视为块而不是对象文字 但是,({a,b}={a:1,b:2})是有效的,正如var{a,b}=

我不明白当你对整个表达式有
()
的时候是什么意思


它的作用是什么?

它强制表达式上下文,这样第一个
{
就不会被视为一个表达式的开始。

这是一个没有声明的分解赋值。这里
customer
变量已经在上面声明了,并且一个值被分配给
response.body.customer

从:

在使用不带声明的对象文字解构赋值时,需要在赋值语句周围加括号(…)

{a,b}={a:1,b:2}
不是有效的独立语法,因为左侧的{a,b}被视为块而不是对象文字

但是,
({a,b}={a:1,b:2})
是有效的,正如
var{a,b}={a:1,b:2}

您的(…)表达式前面需要加一个分号,或者可以用来执行前一行的函数


它正在使用解构将返回值的一部分分配给现有的标识符主体和客户。@JornSharpe可能值得指出,只有客户被解构。.这有名字吗?如果没有,我有一个想法->
歧义解决程序
:)