2

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

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

和回调函数接收相同的参数:

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

}

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

4

3 回答 3

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
}

演示:http: //jsfiddle.net/pYUfG/

有关该arguments值的更多信息,请查看mozilla 的文档

于 2012-04-04T19:06:10.853 回答
2

传递任意数量的参数:

function BaseFunction() {
     CallbackFunction.apply( {}, Array.prototype.slice.call( arguments ) );
}
于 2012-04-04T19:06:21.417 回答
0

这种伎俩

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

但是CallbackFunction需要接受数组:

CallbackFunction(value, argsArray)
{
  //...
}
于 2012-04-04T19:04:47.393 回答