尝试将多个参数传递给变量函数调用..
function myFunction(myvar,time){
alert(myvar);
}
t_function = "myFunction";
t_params = "haha,hehe";
window[t_function](t_params);
我基本上需要模仿这个电话
myFunction("haha","hehe");
我无法在变量函数调用中设置特定数量的参数,例如
// I will not know how many params a function will need.
window[t_function](t_params1,t_params2,etc);
有什么想法吗?我很想使用eval。
------最终做到了-----
function myFunction(myvar1,myvar2){ 警告(myvar1 +“和”+ myvar2);
}
t_function = "myFunction";
t_params = [];
t_params[0] = "haha";
t_params[1] = "hehe";
window[t_function].apply(this,t_params);
感谢所有人,尤其感谢Joseph the the Dreamer
答案 0 :(得分:2)
你需要apply
,它在你的函数中接受this
的值,以及一个参数数组:
window[t_function].apply(this,[arg1,arg2,...,argN]);
该功能将收到它:
function myFunction(arg1,arg2,...,argN){...}
传递给调用函数的每个值都可以通过类似数组的arguments
来访问。这在参数是动态的时尤其有用。因此,您可以执行以下操作:
function myFunction(){
var arg1 = arguments[0]; //hello
var arg2 = arguments[1]; //world
}
//different ways of invoking a function
myFunction('hello','world');
myFunction.call(this,'hello','world');
myFunction.call(this,['hello','world']);
答案 1 :(得分:1)
如果您可以可靠地使用,
作为分隔符,请尝试以下操作:
window[t_function].apply(null,t_params.split(","));