javascript - 如何处理键名中带有冒号的 JavaScript 对象?

标签 javascript

以下代码中有语法错误:

<!DOCTYPE html>
<html>
  <body>
    Hello World!
    <script type="text/javascript">
        var obj = {'a:b': '1'};
        alert(obj.a:b); // syntax error
    </script>
  </body>
</html>

那么如何处理键名中带有冒号的 JavaScript 对象呢?

我必须这样做,因为我需要处理来 self 无法控制的远程服务器的 jsonp 格式的提要,并且返回的 jsonp 的键名称中有冒号(因为 jsonp 是从 XML 转换的)标签中包含命名空间)。

最佳答案

通过以下方式访问它们:

obj['a:b']

方括号与.同义,只不过它们接受字符串(包括变量!)

所以 obj.x == obj['x'],如果你有一个变量 foo = 'x' 那么 obj[foo] 也将相等。

不过,不要让语法欺骗了您。它可能看起来类似于数组访问的语法,但它实际上是从对象访问属性的另一种方式。

关于javascript - 如何处理键名中带有冒号的 JavaScript 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2981659/

相关文章:

javascript - JavaScript 中的构造函数或对象继承

javascript - 如何在javascript中转义^字符?

JavaScript 循环嵌套对象并显示在单独的行中

javascript - 在 Clickfunnel 中对 strip 订阅应用折扣

javascript - CSS/Javascript 菜单固定位置问题(滚动时)

javascript - XML 解析错误 : no root element found (empty content) Django

javascript - 从 javascript 保存 3 个 php 变量

javascript - 使用自定义 UI 创建 html 框

javascript - 为每个 mysql 创建用 javascript 提交

javascript - this.state.search_results.map 不是一个函数,而是一个数组