我有这段代码。我想要它做的是加载一个.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”。
答案 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