通常、私はフォームによって達成される関数クロージャを見ます
var closedF = (function()
{
return function(){/* return value */}
})();
そのため、呼び出しclosedF()
は内部関数からの戻り値を返します。closedF
しかし、解析時に定義されるように、関数宣言(上記は関数式です)を使用して作成したいと思います。つまり
function closedF()
{
return function(){/* return value */}
}
closedF()
ただし、これを呼び出すと、内部関数の戻り値ではなく内部関数が返されるため、これは機能しません。注:上記の宣言で使用できますclosedF()()
が、それはエレガントではありません。
これは可能ですか?
psいつものように、特定のプログラミングの問題を解決する方法はたくさんありますが、実際には、クローズドオーバー関数はJSの「二級市民」関数ではないことを誰かに見せてもらいたいです。