[英]pass variable arguments to functions - javascript
我定义了一个可以接受任意数量参数但不需要任何参数的函数:
function MyFunction() { //can take 0, 1, 1000, 10000, n arguments
//function code
}
现在我想编写另一个函数,每次使用可变数量的参数调用MyFunction:
function Caller(n) {
var simple_var = "abc";
MyFunction() //how can i pass simple_var to MyFunction n times?
}
提前致谢 :)
Function.apply
可用于将一个参数数组传递给一个函数,就好像数组中的每个元素都已作为单独的参数传递一样:
function Caller(n) {
var simple_var = "abc";
// create an array with "n" copies of the var
var args = [];
for (var i = 0; i < n; ++i) {
args.push(simple_var);
}
// use Function.apply to send that array to "MyFunction"
MyFunction.apply(this, args);
}
值得一提的是 ,webkit上的参数长度限制为65536 。
你可以使用eval(我知道,eval是邪恶的)。
在for循环构造字符串中:
var myCall = "Myfunction(abc, abc, abc)";
然后将其传递给eval
function Caller(n) {
var simple_var = "abc";
eval(myCall);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.