如何返回eval(代码)并使用JavaScript获取对象?

时间:2010-10-09 08:22:30

标签: javascript xmlhttprequest eval

我有这段代码。我想要它做的是加载一个.js文件,然后运行它。如果它运行我希望它返回一个参数甚至更好的对象。

这是我页面中的代码

var runCode = function(){
    var xhr=new XMLHttpRequest();
    xhr.open('GET','io.js',false);
    xhr.send();
    return eval(xhr.responseText);
};

这就是is.js

var IO = new function(){
    this.run = true;
    return 'io';
};
return IO

但是当我运行它时,我在控制台中得到“Uncaught SyntaxError:Illegal return statement”。

4 个答案:

答案 0 :(得分:4)

我发现的另一个解决方案是将字符串封装在函数内eval',这非常简单。

return eval("(function() {" + xhr.responseText + "})();");

答案 1 :(得分:2)

您不能在函数外使用return。但要从eval返回值,您可以使用以下语法 -

eval('var IO = function(){this.run = true; return "io";};{IO};')

答案 2 :(得分:0)

问题是,你无法返回功能之外。在请求完成后,您需要return IO;函数runCode

答案 3 :(得分:0)

删除new声明

var IO = function(){ 
    this.run = true; 
    return 'io'; 
}; 
return IO