私は最近javascriptで関数式と宣言を読んでおり、これについてはかなりのオンライン記事を参照しています。私はまた、SOに関するこのトピックについての議論もかなり見てきました。学習の過程で、私は挑戦で自分自身に任せました。私はそれを明確に説明することはできません。 私はここでいくつかの洞察を得るのを助けるためにSOの専門家に親切にリクエストできますか?ここでJavascriptの関数式の使用例
が問題のシナリオである -
シナリオ1:
>var multFunc=function(n){var a=2; return n*a;}
>multFunc(6)
12
私は、このシナリオを理解し、その結果は、私は(12)を期待していたものです。
シナリオ2:
>var multFunc1=function(n){return function(n){n*2}}
>multFunc1(6)
function (n){n*2}
私は2番目のケースを理解していませんでした。それはなぜ12を返さないでしょうか? 誰かがこれを理解するのを手伝ってもらえますか? 私は、このリンクをチェックしている - Javascript Function Expressions、このリンクJavaScript Nested function をし、私も昨日同様の質問をしましたが、私は(TJで丁重に説明したように)私は完全に概念を把握していなかったと思います - Trying a closure the wrong way?
'multFunc1'は関数を返すので、' 12'を得るには 'multFunc1()(6)'を実行する必要があります。 – 4castle
さらに、@ 4castleは、 'multFunc1'に渡された引数は使用されていないことに注意してください。*で示されている内部関数は常に' undefined' *を返します( 'return'文はありません)。 – nnnnnn
@ 4castle .. multFunc1()(6)コールは実際には未定義を返します。私は実際にそれを実際に試してみました –