除了方便的解构赋值语法外,CoffeeScript 还支持类似的构造对象字面量的语法:
a = 1
b = 2
o = {a, b}
> {a: 1, b: 2}
我在任何地方都找不到这种语法的提及,所以我把它称为重组分配。这个结构有一个传统的名字吗?如果不是,其他人怎么称呼它?
更新
结构化表达式是我的新名字 du jour。
这与分配无关;这只是对 JavaScript 对象字面量语法的补充。
有趣的是,您似乎将其视为“派生自”解构赋值,因为实际上情况恰恰相反:解构赋值来自对象文字符号,并且不限于您所描述的无键子集。例如,{foo: asdf} = bar
完全符合您的预期:
asdf = bar.foo
所以这{a: b, b: a} = {a, b}
是一种非常混乱的写法[a, b] = [b, a]
。
你也可以写到{@foo}
producer {foo: @foo}
,这是另一个有用的速记(当然它也适用于解构赋值语句)。
如果你真的需要一个名字,“对象文字键推断”可能更准确。