将参数传递给在javascript中使用新函数关键字创建的函数

时间:2014-09-17 05:56:39

标签: javascript function

我正在使用new Function()将字符串转换为函数表达式。

它运行正常,但我需要将参数传递给函数。怎么做?

我正在从JSON文件中读取字符串。

var act = new Function("Hosting.Click()");
act();

2 个答案:

答案 0 :(得分:0)

假设没有更好的方法可以做到这一点

您需要解析包含代码的字符串,并在那里替换参数。

例如,如果模式始终是方法调用,则可以将其拆分为括号,并在其中连接参数。但是,如果它始终是一个函数调用,那么最好将分割部分并直接调用函数(这将使您有机会确保字符串是您期望的那样)。

答案 1 :(得分:0)

试试这个 -

使用arg1创建新函数,然后通过传递此参数调用Hosting.Click()



var Hosting={Click:function(){
alert(JSON.stringify(arguments));
}}

var act = new Function("arg1","Hosting.Click(arg1)");
act("Value for argument 1");




更新: -

对于任何争论 -

var act2 = new Function("Hosting.Click.apply(window,arguments)");
act2("any no of arguments",1,2,3,4,5,"Hi");

DEMO