我想在JavaScript中使用所谓的“enum”对象作为字典键(实际上,它也是字典AFAIK)。
这不起作用:
var State ={DEFAULT:0,ACTIVE:1 ,INACTIVE:2,ALERT:3};
var statesDict = {
State.ACTIVE : {color:0x00ff00}
State.INACTIVE: {color:0x000000}
};
虽然这个:
var State ={DEFAULT:0,ACTIVE:1 ,INACTIVE:2,ALERT:3};
var statesDict = {
1: {color:0x00ff00}
2: {color:0x000000}
};
为什么呢? State.{prop name}
是不应该被它的值取代?
答案 0 :(得分:6)
您可以使用computed property names括号。
var State = { DEFAULT: 0, ACTIVE: 1, INACTIVE: 2, ALERT: 3 },
statesDict = {
[State.ACTIVE]: { color: 0x00ff00 },
[State.INACTIVE]: { color: 0x000000 }
};
console.log(statesDict);