2

BaseFunction がパラメーターの変数セットをそのまま受け取る BaseFunction と CallbackFunction の 2 つの関数を作成できるようにしたいと考えています。

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 の docsを参照してください。

于 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 に答える