Javascript 对象枚举语法

标签 javascript

我有这个对象:

var State = {
  WAITING: 1,
  READY: 2
}

这个对象用于获取状态文本:

var Language = {
  States: {
    WAITING: "Waiting..",
    READY: "Ready!"
  }
}

我想直接从状态获取文本,如下所示:

var state = State.READY;

var statusText = Language.States[state];

为了让它工作,我需要类似这样的非法语法:

var Language = {
  States: {
    State.WAITING: "Waiting..",
    State.READY: "Ready!"
  }
}

但这不起作用,我可以使用什么来简单地从状态变量中获取文本?

最佳答案

不,你不知道。只要让你的值(value)观合理,而不是神奇的数字。在这种情况下,让它们使用映射到其他对象使用的键名称的字符串,然后完成:

var States = {
  WAITING: "WAITING",
  READY: "READY"
}

var Language = {
  States: {
    WAITING: "Waiting..",
    READY: "Ready!"
  }
}

瞧:

var state = States.WAITING;
var label = Language.States[state]

如果这些状态数字有意义,那么也查找它们:

var responseCodes = {
  "0": "WAITING",
  "1": "READING",
  "403": "FORBIDDEN",
  ...
}

然后链接你的查找:

...
var responseCode = whatever();
var state = responseCodes[responseCode];
var label = Language.State[state];
...

关于Javascript 对象枚举语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30565726/

相关文章:

javascript - 使谷歌地图 iframe 嵌入响应的快速简便的方法

javascript - 使用 Selenium 测试 Polymer 元素和阴影 DOM

JavaScript - Map() 增量值

javascript - Zebra Dialog - 获取输入文本框值

javascript - 将 IIFE 的公共(public)成员分配给变量与返回对象之间有什么区别

javascript - 动态创建的 Html 表对于大量记录渲染速度很慢

javascript - 如何在我的应用程序中获取放置在 Google map 上的 JSON 结果?

javascript - 内联元素的边框

Javascript 电话号码自动转换不起作用

javascript - 在网页上显示大量文本的创意