以下に示すように関数から関数を返す場合、それを実行してパラメーターを設定するにはどうすればよいですか?
var func1 = function(param){
// do stuff
};
function returnFunction(){
return func1;
}
returnFunction() // this will return func1 but I want to execute it with certain param.
以下に示すように関数から関数を返す場合、それを実行してパラメーターを設定するにはどうすればよいですか?
var func1 = function(param){
// do stuff
};
function returnFunction(){
return func1;
}
returnFunction() // this will return func1 but I want to execute it with certain param.
通常どおりに実行できます。
returnFunction()("whatever");
これが実際の例です。
少し読みやすくするには:
var fn = returnFunction();
fn("whatever");
他の関数呼び出しと同様に:
returnFunction()(foobar)
あなたは関数を魔法の構造体と見なしているようです。
ただし、関数は、演算子で操作できる単なる値です()
。
あなた!(x || y)
には奇妙に見えますか?ある意味で!
は と非常に似ていますが、オペランドの前に書くのに対し、オペランドの後に書く点が異なります。値を取り、それを操作し、値を返す、それだけです。()
()
x()()()
奇妙に見えないことを理解していれば、それは単に珍しいことです:x
明らかに関数であり、関数を返し、関数を返し、何かを返します: 値(x()()())
すでにお気づきのように、returnFunction()
が返されfunc1
ます。したがって、式全体がvalueをreturnFunction()
生成し、演算子をvaluesに適用できるため、必要なことはそれだけです。 func1
()
returnFunction()(arg)