指定された一連のパラメーターを持つ関数への参照を渡すことができる必要があります。
パラメータなしで参照を渡す例を次に示します。
var f = function () {
//Some logic here...
};
var fr = f; //Here I am passing a reference to function 'f', without parameters
fr(); //the 'f' function is invoked, without parameters
次に、同じf
関数を渡す必要がありますが、今回はパラメーターを参照に渡す必要があります。今、私は無名関数でそれを行うことができ、次f
のように、新しく作成された関数内のパラメーターを使用して関数を呼び出すことができます。
var f = function () {
//Some logic here...
};
var fr = function (pars) {
f(pars);
}; //Here I am creating an anonymous function, and invoking f inside it
fr({p : 'a parameter'}); //Invoking the fr function, that will later invoke the f function with parameters
しかし、私の質問は、パラメータを使用して関数への直接参照を渡す方法はありますが、匿名関数で囲むことはありませんか?f
fr
が呼び出されたときに f(1,2,3) が実行されるように、fr
パラメーター ( ) なしで呼び出し可能にするには、何を割り当てる必要がありますか?fr()
fr
[UPDATE]私はジェイソン・バンティングの部分関数についてのここへの回答 に従いました。彼がそこに投稿した JavaScript 関数はまさに私が探していたものです。解決策は次のとおりです。
function partial(func /*, 0..n args */) {
var args = Array.prototype.slice.call(arguments).splice(1);
return function() {
var allArguments = args.concat(Array.prototype.slice.call(arguments));
return func.apply(this, allArguments);
};
}