我想在JavaScript中使用所谓的"枚举"对象作为字典键(实际上,它也是字典AFAIK).
这不起作用:
var State ={DEFAULT:0,ACTIVE:1 ,INACTIVE:2,ALERT:3};
var statesDict = {
State.ACTIVE : {color:0x00ff00}
State.INACTIVE: {color:0x000000}
};
Run Code Online (Sandbox Code Playgroud)
虽然这个做了:
var State ={DEFAULT:0,ACTIVE:1 ,INACTIVE:2,ALERT:3};
var statesDict = {
1: {color:0x00ff00}
2: {color:0x000000}
};
Run Code Online (Sandbox Code Playgroud)
为什么?是不State.{prop name}应该被它的价值取代?
您可以使用带括号的计算属性名称.
var State = { DEFAULT: 0, ACTIVE: 1, INACTIVE: 2, ALERT: 3 },
statesDict = {
[State.ACTIVE]: { color: 0x00ff00 },
[State.INACTIVE]: { color: 0x000000 }
};
console.log(statesDict);Run Code Online (Sandbox Code Playgroud)