如何使用键名中的冒号处理JavaScript对象?

时间:2010-06-05 19:07:31

标签: 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对象?

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

1 个答案:

答案 0 :(得分:6)

使用以下方式访问它们:

obj['a:b']

括号与.同义,除非它们接受字符串(包括变量!)

所以obj.x == obj['x'],如果您有变量foo = 'x',那么obj[foo]也会相等。

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