⊗jsPmFNFRF 252 of 505 menu

JavaScriptにおける関数を返す関数

文字列を返す以下のような関数があるとします:

function func() { return '!'; } let result = func(); console.log(result); // '!' を出力

次に、文字列の代わりに、同様の考え方で 無名関数を返してみましょう:

function func() { return function() { return '!'; }; } let result = func(); // 変数resultには関数が入る console.log(result); // 'function() {return '!';}' を出力

ご覧の通り、変数 result は 関数になりました。その実行結果をコンソールに 出力してみましょう。そのためには括弧を付けます:

function func() { return function() { return '!'; }; } let result = func(); console.log( result() ); // '!' を出力

func() の呼び出しが関数を返すので、 この返された関数をすぐに呼び出すこともできます。 このように:func()() - 最初の括弧は 関数 func の結果(それ自体が関数)を取得し、 2番目の括弧は func の結果に適用されます。

試してみましょう:

function func() { return function() { return '!'; }; } console.log( func()() ); // '!' を出力

以下のように呼び出されたときに数値 1 を返す 関数 func1 を作成してください:func1()()。 同様に、数値 2 を返す関数 func2 も作成してください。 これらの関数の結果の合計を求めてください。

日本語
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItalianoქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
当サイトでは、サイトの動作、分析、パーソナライゼーションのためにクッキーを使用しています。 データ処理はプライバシーポリシーに従って行われます。
すべて受け入れる 設定 拒否