0

これをコンパイルできません:

  export function Parse(jsonData) {
        try {
            if (jsonData.d != undefined) {
                if (jsonData.d != "") {
                    return (new function("return " + jsonData.d))();
                }
            }
            else {
                if (jsonData != "") {
                    return (new  function("return " + jsonData))();
                }
            }
            return {};
        }
        catch (e) {
            return { exception: e.Message };
        }
    }

("return"ステートメント) または }の両方でエラーがマークされています。

4

2 に答える 2

2

全体として、JavaScript では、newキーワードを避けるのがベスト プラクティスです。次のように、それなしですぐに実行される無名関数を作成できます。

function Parse(jsonData) {
    try {
        if (typeof jsonData.d !== 'undefined') {
            if (jsonData.d != "") {
                    return (function(j) { 
                        return "return " + j.d;
                    }(jsonData));
                }
            } else {
                if (jsonData != "") {
                    return (function(j) { 
                        return "return " + j;
                    }(jsonData));
                }
            }
            return {};
        }
        catch (e) {
            return { exception: e.Message };
        }
}

var data = { d: 'x' }; // 'test';
var result = Parse(data);
alert(result);

この例では、newキーワードを削除し、すぐに実行される関数に jsonData を渡し、return結果をテストできるように を追加しました。

于 2013-03-16T09:43:43.180 に答える
0

両方の場所に(JavaScriptの場合と同じように)new Functionではなく、必要です。new function

于 2013-03-15T18:10:06.463 に答える