Javascript:调用函数,传递参数数组,类似于setTimout()的功能

时间:2009-12-17 19:09:24

标签: javascript

我想手动执行setTimout的操作,没有超时。

setTimeout(function,0,args);

只需调用一个函数并传递一个参数数组,而不知道或关心有多少参数。

基本上我想通过另一个函数代理函数调用。

我的术语很糟糕,抱歉。

4 个答案:

答案 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);