我刚刚看到了一些我从未见过的东西,似乎无法找到一个解释它真正是什么的说明……在ES5.1标准和ES6草案中都没有,在Mozilla ES6支持中也没有。
请在技术上解释正在发生的事情(匿名对象、匿名块?),并提供ES标准的某个部分或其他资源的参考,以解释这一点。
上下文是一个火狐扩展。
它在当前作用域中创建了变量Cc、Ci、Cu。这有点违反直觉,因为它看起来像是一个匿名对象,但是人们会期望左边是属性名称,右边是值...
问题的来源:https://developer.mozilla.org/en-US/Add-ons/Overlay_Extensions/XUL_School/JavaScript_Object_Management 更新:感谢Leo,我找到了正确的词(解构)。我发现this blog解释得非常好。
请在技术上解释正在发生的事情(匿名对象、匿名块?),并提供ES标准的某个部分或其他资源的参考,以解释这一点。
上下文是一个火狐扩展。
const // var also works here it seems
{
classes : Cc
, interfaces : Ci
, utils : Cu
} = Components
它在当前作用域中创建了变量Cc、Ci、Cu。这有点违反直觉,因为它看起来像是一个匿名对象,但是人们会期望左边是属性名称,右边是值...
问题的来源:https://developer.mozilla.org/en-US/Add-ons/Overlay_Extensions/XUL_School/JavaScript_Object_Management 更新:感谢Leo,我找到了正确的词(解构)。我发现this blog解释得非常好。
{ incomingValue : variableName }
。请注意incomingValue:
,即左侧是可选的。我不确定其他编程语言是否经常这样做,因此我不是函数式语言的粉丝,所以我可能是错的。 - user1115652