0

我想在初始化时使用 field.name 作为哈希表的键,但我收到一条错误消息,说 init 行上缺少“:”,这是我尝试过的方法

var field1 = document.getElementById("PRES_BK_LANG");
var field2 = document.getElementById("PRES_BK_CORR_MED");
var fields = {field1.name:[field1,"P"],field2.name:[field2,"O"]};

可以这样做吗?

有任何想法吗?

4

2 回答 2

2

不,对象文字符号仅在属性名称被硬编码时才可用。您必须将该对象用作地图来存储数据:

var fields = {};
fields[field1.name] = [field1,"P"];
fields[field2.name] = [field2,"O"];
于 2013-02-01T10:08:24.467 回答
1

你应该写这个。

var fields = {};
fields[field1.name] = [field1,"P"];
fields[field2.name] = [field2,"O"];

原因是这种对象构造(您所写的)将“键”视为字符串文字,而不是将其解析为真正的字符串。

于 2013-02-01T10:10:31.040 回答