以下代码中有语法错误:
<!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/