Javascript - 将变量参数传递给Function

时间:2012-04-04 19:01:54

标签: javascript parameters parameter-passing optional-parameters

我希望能够创建两个函数,BaseFunction和CallbackFunction,其中BaseFunction接受一组可变参数:

BaseFunction(arg1, arg2, ....)
{
    //Call the Callback function here
}

和回调函数返回相同的参数:

CallbackFunction(value, arg1, arg2, ...)
{

}

如何将参数从基函数传递给回调函数?

3 个答案:

答案 0 :(得分:7)

使用apply调用带有参数数组的函数。

BaseFunction(arg1, arg2, ....)
{
    // converts arguments to real array
    var args = Array.prototype.slice.call(arguments);
    var value = 2;  // the "value" param of callback
    args.unshift(value); // add value to the array with the others
    CallbackFunction.apply(null, args); // call the function
}

DEMO:http://jsfiddle.net/pYUfG/

有关arguments值的更多信息,请查看mozilla's docs

答案 1 :(得分:2)

传递任意数量的参数:

function BaseFunction() {
     CallbackFunction.apply( {}, Array.prototype.slice.call( arguments ) );
}

答案 2 :(得分:0)

这种可以解决问题:

BaseFunction(arg1, arg2, ....)
{
  CallbackFunction(value, arguments);
}

但是CallbackFunction需要接受数组:

CallbackFunction(value, argsArray)
{
  //...
}