我有一个枚举:
var a = {X: 0, Y: 1};
并且,我想从第一个的值创建另一个枚举。像这样:
var b = {a.X: "foo", a.Y: "bar"};
这样做会给我一个SyntaxError: Unexpected token .
我有没有办法在javascript中使用一个枚举的值作为另一个的键?
仅供参考:我意识到我可以做这样的事情来实现我想要的目标
var b = {};
b[a.X] = "foo";
b[a.Y] = "bar";
但是,从可读性的角度来看,我更愿意是否有某种方式可以用以前的方式来做。
答案 0 :(得分:18)
我只是在寻找其他东西的时候遇到过这个......
现在可以使用ES6语法
执行此操作var b = {
[a.X]: "foo",
[a.Y]: "bar"
};
答案 1 :(得分:3)
不,你必须采取第二种方式。
要了解其原因,请考虑以下代码:
var foo = 'bar';
var object = {
foo: 'baz'
};
在对象文字中,{{1>}存储在变量 foo
或字符串 foo
中的值是什么?
根据语言规则,它是后者。因此,对象表达式的键不能是复杂的表达式本身。
就可读性而言,最接近的可能就是沿着这些方向写一个帮助者:
"foo"