我无法编译:
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 };
}
}
(“返回”语句说明)或}预期
标记错误答案 0 :(得分: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
,以便我可以测试结果。
答案 1 :(得分:0)
你想要new Function
,而不是new function
两个地方(与JavaScript相同)。