将JavaScript Map对象用作枚举有不利之处吗?

时间:2018-11-02 18:42:28

标签: javascript

我一直在使用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对象用作枚举的例子,所以我想知道是否有这个原因吗?

谢谢!

0 个答案:

没有答案