JavaScript:枚举标记检查

时间:2013-03-21 15:27:15

标签: javascript enums

我想检查我的枚举值中是否设置了标志。 我的代码出了什么问题?

Javascript的代码

var flags = {
  FOO: 1,
  BAR: 2,
  BAZ: 4,
  FUM: 8,
  ERROR: 65
}

var value = flags.FOO | flags.BAR;

if (value & flags.ERROR){
   alert("ERROR IS SET, but this is not true");
}

1 个答案:

答案 0 :(得分:2)

首先你的值应该是n ^ 2:

var flags = {
  UNKNOWN: 0, 
  FOO: 1,
  BAR: 2,
  BAZ: 4,
  FUM: 8,
  ERROR: 16
}

然后你的陈述应该是:

if ((value & flags.ERROR) == flags.ERROR){
   alert("ERROR IS SET");
}