当对象具有"new"作为属性名称时,来自IE8和IE7的"预期标识符"错误

Eli*_*ria 4 javascript internet-explorer internet-explorer-8 internet-explorer-7

我有一个我在IE8中测试的网页,它告诉我该页面有错误.我试图想出一个简单的例子,我想出了这个:

<!DOCTYPE HTML>
<html>
<head>
  <script>
  var stuff = {
    "foo": {
      "new": 42
    }
  };
  var thing = stuff.foo.new;
  </script>
</head>
<body>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

它可以在这里测试.

这是我看到的错误:

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
Run Code Online (Sandbox Code Playgroud)

IE7显示了类似的错误.它在我测试页面的每个其他浏览器中都可以正常工作,包括新版本的IE.有谁知道导致这个问题的原因以及如何避免它(除了选择其他名称的明显解决方案)?

Poi*_*nty 10

new是一个JavaScript保留字.您可以通过以下方式前往酒店:

var thing = stuff.foo["new"];
Run Code Online (Sandbox Code Playgroud)

(我打赌).你可以通过调用属性"isNew"来省去一些麻烦.