我有一个我在IE8中测试的网页,它告诉我该页面有错误。我试图想出一个简单的例子,我想出了这个:
<!DOCTYPE HTML>
<html>
<head>
<script>
var stuff = {
"foo": {
"new": 42
}
};
var thing = stuff.foo.new;
</script>
</head>
<body>
</body>
</html>
可以对其进行测试here。
这是我看到的错误:
Webpage error details
User Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)
Timestamp: Mon, 21 Jan 2013 23:11:52 UTC
Message: Expected identifier
Line: 11
Char: 25
Code: 0
URI: file:///C:/Documents%20and%20Settings/Administrator/My%20Documents/ie8PropertyNameTest.html
IE7显示类似的错误。它在我测试页面的每个其他浏览器中都可以正常工作,包括新版本的IE。有谁知道导致这个问题的原因以及如何避免它(除了选择其他名称的明显解决方案之外)?
答案 0 :(得分:10)
new
是一个JavaScript保留字。您可以通过以下方式前往酒店:
var thing = stuff.foo["new"];
(我打赌)。你可以通过调用属性“isNew”来节省一些麻烦。
答案 1 :(得分:3)
如果您使用new
作为密钥,请不要这样做:
foo.new = 'bar';
相反,这样做:
foo['new'] = 'bar';