4

IE8でテストしているWebページがあり、そのページにエラーがあると表示されます。私は簡単な例を考え出そうとしました、そして私はこれを思いつきました:

<!DOCTYPE HTML>
<html>
<head>
  <script>
  var stuff = {
    "foo": {
      "new": 42
    }
  };
  var thing = stuff.foo.new;
  </script>
</head>
<body>
</body>
</html>

ここでテストできます。

これは私が見るエラーです:

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を含め、ページをテストした他のすべてのブラウザーで正常に動作します。誰かがこの問題の原因とそれを回避する方法を知っていますか(他の名前を選ぶという明白な解決策を除いて)?

4

2 に答える 2

10

newJavaScriptの予約語です。次の方法で宿泊施設にアクセスできます。

var thing = stuff.foo["new"];

(賭けます)。プロパティを「isNew」のように呼び出すことで、手間を省くことができます。

于 2013-01-21T23:19:38.237 に答える
3

をキーとして使用する場合は、次newのようにしないでください。

foo.new = 'bar';

代わりに、次のようにします。

foo['new'] = 'bar';
于 2013-01-21T23:21:13.293 に答える