⊗jsPmClCr 263 of 505 menu

Čítač na uzávierkach v JavaScripte

Prepíšme kód, ktorý sme skúmali, tak, aby vrátená funkcia zakaždým zväčšila hodnotu premennej num o jednu:

function test() { let num = 1; return function() { console.log(num); num++; // pripočítame jednu } } let func = test();

Výsledkom bude, že každé volanie funkcie func vypíše do konzoly novú hodnotu:

function test() { let num = 1; return function() { console.log(num); num++; } } let func = test(); func(); //vypíše 1 func(); //vypíše 2 func(); //vypíše 3 func(); //vypíše 4 func(); //vypíše 5

Výsledkom je, že sme implementovali čítač volania funkcií pomocou uzávierky (presnejšie pomocou premennej num z uzávierky našej funkcie).

Majte na pamäti, že každé volanie funkcie test vráti novú funkciu, ktorá bude mať svoju vlastnú uzávierku. To znamená, že rôzne čítače budú pracovať nezávisle:

function test() { let num = 1; return function() { console.log(num); num++; }; } let func1 = test(); // prvý čítač func1(); //vypíše 1 func1(); //vypíše 2 let func2 = test(); // druhý čítač func2(); //vypíše 1 func2(); //vypíše 2

Výsledkom je, že tá istá premenná num pre rôzne funkcie bude mať rôznu hodnotu!

To znamená, že ak zavoláme funkciu test dvakrát, funkcie z nej získane budú pracovať nezávisle a každá z týchto funkcií bude mať svoju nezávislú premennú num.

Samostatne, bez nahliadania do môjho kódu, implementujte čítač volania funkcie, pracujúci na uzávierkach.

Nech funkcia v uzávierke uchováva číslo 10. Zaistite, aby každé volanie funkcie znížilo toto číslo o 1 a vypísalo do konzoly znížené číslo.

Upravte predchádzajúcu úlohu tak, aby odpočítavanie dosiahlo 0, a potom každé nasledujúce volanie funkcie vypísalo do konzoly správu, že odpočítavanie je ukončené.

Slovenčina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používame cookies na fungovanie stránky, analýzu a personalizáciu. Spracúvanie údajov prebieha v súlade s Politikou ochrany osobných údajov.
prijať všetky nastaviť odmietnuť