⊗jsPmClCr 263 of 505 menu

JavaScriptにおけるクロージャーを使ったカウンター

以前に検討したコードを書き直して、 返される関数が変数 num の値を 毎回1ずつ増加させるようにしてみましょう:

function test() { let num = 1; return function() { console.log(num); num++; // 1を加算 } } let func = test();

結果として、関数 func を呼び出すたびに コンソールに新しい値が表示されることになります:

function test() { let num = 1; return function() { console.log(num); num++; } } let func = test(); func(); // 1を表示 func(); // 2を表示 func(); // 3を表示 func(); // 4を表示 func(); // 5を表示

これで、クロージャー(より正確には、関数の クロージャーにある変数 num)を 使って関数呼び出しのカウンターを実装できた ことになります。

注意点として、関数 test を呼び出すたびに 新しい関数が返され、それぞれが独自の クロージャーを持ちます。つまり、異なる カウンターは独立して動作します:

function test() { let num = 1; return function() { console.log(num); num++; }; } let func1 = test(); // 1つ目のカウンター func1(); // 1を表示 func1(); // 2を表示 let func2 = test(); // 2つ目のカウンター func2(); // 1を表示 func2(); // 2を表示

つまり、同じ変数 num が異なる関数に対して 異なる値を持つことになるのです!

関数 test を2回呼び出した場合、 そこから得られる関数は独立して動作し、 各関数は独立した変数 num を 持つことになります。

私のコードを見ずに、自分自身で、 クロージャーを使って動作する関数呼び出し カウンターを実装してみてください。

クロージャー内の関数に数値 10 を 保持させてください。そして、関数が呼び出される たびにこの数値を 1 ずつ減らし、 減少後の数値をコンソールに表示するように してください。

前の課題を修正して、カウントダウンが 0 に達した後、それ以降の関数呼び出し ではコンソールにカウントダウン終了のメッセージを 表示するようにしてください。

日本語
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
当サイトでは、サイトの動作、分析、パーソナライゼーションのためにクッキーを使用しています。 データ処理はプライバシーポリシーに従って行われます。
すべて受け入れる 設定 拒否