我一直在使用JavaScript Map对象作为枚举:
const callbacksMap = new Map([
[String, function stringCallback(id, change) {
check(id, change)
if (typeof change !== 'string') {
throw new Error(`${id}: Change is not a String.`)
}
return change
}],
[Number, function numberCallback(id, change) {
check(id, change)
if (typeof change !== 'number') {
throw new Error(`${id}: Change is not a Number.`)
}
return change
}],
])
const callback = callbacksMap.get(String)
或者,我可以使用if / else if或switch大小写,但是,我发现上面的代码很干净而且易于阅读。
我的问题是,将Map对象用作枚举有不利之处吗?我在常规对象上使用Map,因为键可以是任何东西。
我已经用Google搜索了这个分配,并且几乎没有发现有人将Map对象用作枚举的例子,所以我想知道是否有这个原因吗?
谢谢!