【发布时间】:2015-03-23 12:58:55
【问题描述】:
我创建了这个对象:
var keys = {A: 'a', B: 'b' };
后来我尝试创建另一个对象:
var values = {keys.A: 1, keys.B: 2};
但是我在 Firefox 控制台中得到了这个:
SyntaxError: missing : after property id
即使我尝试过:
var vals = {keys['A']: 1, keys['B']: 2}
我遇到了同样的错误。
获得成功的唯一方法是输入以下内容:
var vals= {};
vals[keys.A] = 1;
vals[keys.B] = 2;
所以,我的问题是,是否有更优雅的方式(类似于第一次尝试)来创建匿名对象,使用预先存在的对象的值作为键。
谢谢,
拉斐尔·阿方索
【问题讨论】:
-
在对象文字中,属性名称必须是字符串文字(例如
'keys.A')或有效的标识符。keys.A不是一个有效的标识符,标记器将keys和.分开,因此解析器看到一个标识符后跟一个句点,它需要一个冒号。
标签: javascript prototype-programming