反向解构转让:重组转让?

时间:2013-02-11 20:26:42

标签: coffeescript variable-assignment

除了destructuring assignment的方便语法之外,CoffeeScript还支持用于构造对象文字的类似语法:

a = 1
b = 2
o = {a, b}

> {a: 1, b: 2}

我无法在任何地方找到这种语法,所以我开始称之为restructuring assignment。这个结构有一个传统的名称吗?如果没有,其他人称之为什么?

更新

结构化表达式是我的新名字du jour。

1 个答案:

答案 0 :(得分:2)

这与作业无关;这只是JavaScript的对象文字语法的补充。

有趣的是,您似乎将其视为“派生自”解构赋值,因为实际情况恰恰相反:解构赋值来自对象文字符号,并且不限于您所描述的无键子集。例如,{foo: asdf} = bar完全符合您的期望:

asdf = bar.foo

因此{a: b, b: a} = {a, b}是一种非常令人困惑的方式来编写[a, b] = [b, a]

你也可以写{@foo}来制作{foo: @foo},这是另一个有用的简写(当然它也适用于解构赋值语句)。

如果你真的需要一个名字,“对象文字键推断”可能更准确。