javascript运行函数作为字符串

时间:2015-06-22 23:03:18

标签: javascript

我正在开发一个API,需要将代码作为字符串传递给它,以便运行它,如下所示:

var api = [API ID],
    code = "alert('some text')";

api.evalScript(code);

但是我有很多代码要同时传递,我怎样才能传递这样的整个函数?

    var api = [API ID];

    function my_code(){
       alert('one');
       alert('two');
       alert('three');
    }

    api.evalScript(my_code());

这不起作用

4 个答案:

答案 0 :(得分:1)

获取你的函数并附加一个空字符串,如下所示:

my_code += '';

将它强制转换为字符串。

答案 1 :(得分:0)

忽略此处的安全隐患。

所以evalScript可能需要一个字符串,你试图评估一个函数并且不能很好地工作。

让我们谈谈如何在JS中轻松连接一个大字符串。

var myCode = [
   'alert("one");',
   'alert("two");',
   'alert("three");'
].join('');

api.evalScript(myCode)

答案 2 :(得分:0)

您将代码作为函数传递,而不是字符串。

var my_code = "alert('one');\n" +
              "alert('two');\n" + 
              "alert('three');"


api.evalScript(my_code);

新行是可选的

答案 3 :(得分:0)

假设您将代码传递给将在API确定的某个稍后执行的API,并且您有一个希望API执行的函数,您可以将"mycode()"传递给API。

但是,如果您打算立即执行代码,则根本没有任何理由可以使用API​​,因此您只需直接调用my_code()即可。