除了destructuring assignment的方便语法之外,CoffeeScript还支持用于构造对象文字的类似语法:
a = 1
b = 2
o = {a, b}
> {a: 1, b: 2}
我无法在任何地方找到这种语法,所以我开始称之为restructuring assignment。这个结构有一个传统的名称吗?如果没有,其他人称之为什么?
结构化表达式是我的新名字du jour。
答案 0 :(得分:2)
这与作业无关;这只是JavaScript的对象文字语法的补充。
有趣的是,您似乎将其视为“派生自”解构赋值,因为实际情况恰恰相反:解构赋值来自对象文字符号,并且不限于您所描述的无键子集。例如,{foo: asdf} = bar
完全符合您的期望:
asdf = bar.foo
因此{a: b, b: a} = {a, b}
是一种非常令人困惑的方式来编写[a, b] = [b, a]
。
你也可以写{@foo}
来制作{foo: @foo}
,这是另一个有用的简写(当然它也适用于解构赋值语句)。
如果你真的需要一个名字,“对象文字键推断”可能更准确。