0

この小さなコード スニペットが IE8 で機能しない理由を見つけることができませんでした。

var a = {"ff": "test"};
eval('('+a+')');

次のようにエラーが発生しています

']' 期待される"。

4

2 に答える 2

0

オブジェクトaを連結して eval された文字列の一部を形成するときに、a.toString()が呼び出され、 が出力されます[object Object]。あなた望むのは{"ff": "test"};、評価された文字列に連結されるため、それJSON.stringify()を達成するために使用する必要があります。

これを試して:

eval('('+JSON.stringify(a)+')');

または、最初の行のオブジェクト宣言を引用符で囲むこともできます。

var a = '{"ff": "test"}';
于 2013-03-28T13:03:43.733 に答える
0
var a = {"ff": "test"};
eval('('+a+')');

これは次のように評価されます。

([object Object])

そして、それは明らかに有効な JavaScript ではありません。データ構造を保持したい場合は、 と を使用できJSON.stringify()ますJSON.parse()

var a_to_json = JSON.stringify(a);
var a_from_json = JSON.parse(a_to_json);
于 2013-03-28T13:07:24.527 に答える