以下代码中存在语法错误:
<!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转换的)标签中的名称空间)。
答案 0 :(得分:6)
使用以下方式访问它们:
obj['a:b']
括号与.
同义,除非它们接受字符串(包括变量!)
所以obj.x
== obj['x']
,如果您有变量foo = 'x'
,那么obj[foo]
也会相等。
不要让语法欺骗你。它可能看起来像类似于数组访问的语法,但它实际上是从对象访问属性的另一种方式。