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

Eth*_*han 2 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>
Run Code Online (Sandbox Code Playgroud)

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

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

Mat*_*att 6

访问它们:

obj['a:b']

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

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

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