我正在使用new Function()
将字符串转换为函数表达式。
它运行正常,但我需要将参数传递给函数。怎么做?
我正在从JSON文件中读取字符串。
var act = new Function("Hosting.Click()");
act();
答案 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");