0

以下に示すように関数から関数を返す場合、それを実行してパラメーターを設定するにはどうすればよいですか?

var func1 = function(param){
    // do stuff
};

function returnFunction(){
    return func1;
}

returnFunction() // this will return func1 but I want to execute it with certain param.
4

3 に答える 3

6

通常どおりに実行できます。

returnFunction()("whatever");

これが実際のです。

少し読みやすくするには:

var fn = returnFunction();
fn("whatever");
于 2012-10-12T13:26:08.973 に答える
2

他の関数呼び出しと同様に:

returnFunction()(foobar)
于 2012-10-12T13:26:19.010 に答える
0

あなたは関数を魔法の構造体と見なしているようです。

関数の呼び出しは魔法ではない

ただし、関数は、演算子で操作できる単なる値です()

あなた!(x || y)には奇妙に見えますか?ある意味で!は と非常に似ていますが、オペランドの前に書くのに対し、オペランドのに書く点が異なります。値を取り、それを操作し、値を返す、それだけです。()()

x()()() 奇妙に見えないことを理解していれば、それは単に珍しいことです:x明らかに関数であり、関数を返し、関数を返し、何かを返します: 値(x()()())

この新しい理解をあなたの例に適用する

すでにお気づきのように、returnFunction()が返されfunc1ます。したがって、式全体がvalueをreturnFunction() 生成し、演算子をvaluesに適用できるため、必要なことはそれだけです。 func1()

returnFunction()(arg)
于 2012-10-12T14:57:56.943 に答える