0

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

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");
}
4

1 回答 1

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");
}
于 2015-02-03T11:04:07.760 回答