私はいただきましたJavaScriptコードを以下と間違っ知りたいのですが - evalはこのスニペットでは動作しないのはなぜevalがこのスニペットで動作しないのはなぜですか?
Message: Object doesn't support this action
Line: 4
Char: 1
Code: 0
私はいただきましたJavaScriptコードを以下と間違っ知りたいのですが - evalはこのスニペットでは動作しないのはなぜevalがこのスニペットで動作しないのはなぜですか?
Message: Object doesn't support this action
Line: 4
Char: 1
Code: 0
コードにはいくつかの問題があります。
最初に、スクリプトに新しいものを作成するように指示していますが、作成するのはとは言いません。新しいObjectオブジェクトを作成していることを、あなたはColorプロパティを設定することができます今すぐ
var p = eval('new Object()');
:カスタムオブジェクトを作成していない場合は、あなたがいることを伝える必要がありますので、あなたは、Objectオブジェクトを作成している
var p = eval('new Object({"Color":"Red"})');
しかし、なぜあなたが最初の場所ではevalを使用していますか? eval is evil!
- それはと私にはJavaScriptエラーを与えている
<html> <script type="text/javascript"> var p = eval('new { "Color":"Red"}'); alert(p.Color); </script> </html>
?
オブジェクトにはnew
operator [MDN]を使用することはできません。機能のみを使用することができます。
{"Color":"Red"}
は、関数としてではなくオブジェクトリテラルとして評価されます。
JSONを解析する場合は、JSON.parse
[MDN]を使用してください。 JSON.parse vs. eval()も参照してください。
それともそれは静的なものである場合、直接オブジェクトリテラルを作成します。
var p = {"Color":"Red"};
それはeval
(which you should avoid to use anyway)で動作させるために、new
を削除し、括弧内にリテラルをラップ:
var p = eval('({"Color":"Red"})');
The parenthesis are necessary JavaScriptは{"Color":"Red"}
と評価されるため、ブロックとエラーをスローします。
あなたの質問に答えることはできませんが、どうしたらいいですか:var p = {"Color": "Red"} '? –
達成しようとしていることは何ですか?なぜ 'var p = {" Color ":" Red "}'不十分ですか? –
@ Kolink-そのコードはサーバーサイドのコードから埋め込まれ、動的です。 –