0

试图将多个参数传递给变量函数调用..

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。

------ 最终这样做了 -----

函数 myFunction(myvar1,myvar2){ alert(myvar1 + " 和 " + myvar2);

}

t_function = "myFunction";
t_params = [];
t_params[0] = "haha";
t_params[1] = "hehe";

window[t_function].apply(this,t_params);

谢谢大家,特别感谢梦想家约瑟夫

4

2 回答 2

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']);
于 2013-04-26T03:16:30.797 回答
1

如果您可以可靠地,用作分隔符,请尝试以下操作:

window[t_function].apply(null,t_params.split(","));
于 2013-04-26T03:16:35.250 回答