我想手动执行setTimout的操作,没有超时。
setTimeout(function,0,args);
只需调用一个函数并传递一个参数数组,而不知道或关心有多少参数。
基本上我想通过另一个函数代理函数调用。
我的术语很糟糕,抱歉。
答案 0 :(得分:43)
function f(a, b, c) { return a + b + c; }
alert(f.apply(f, ['hello', ' ', 'world']));
答案 1 :(得分:7)
在ES6中:
function myFunc(a, b, c){
console.log(a, b, c);
}
var args = [1, 2, 3];
myFunc(...args);
答案 2 :(得分:0)
听起来你想要一个带有变量参数的函数作为参数。执行此操作的最佳方法是显式数组或一般对象。
myFunction(callbackFunction, count, arrayOfOptions);
myFunction(callbackFunction, count, objectOfOptions);
答案 3 :(得分:0)
查看javascript的arguments变量。这是传递给函数的所有参数的数组。
所以你可以像这样创建你的核心功能:
f = function () {
for (arg in arguments) {
// do stuff
}
}
然后,使用正确的参数创建一个新函数:
f2 = function () {
return f(arg1, arg2, arg3 /* etc. */);
}
并将此函数传递给setTimeout:
setTimeout(f2, 0);