⊗jsPmClCr 263 of 505 menu

Licznik na domknięciach w JavaScript

Przepiszmy rozważany przez nas kod tak, aby zwracana funkcja za każdym razem zwiększała wartość zmiennej num o jeden:

function test() { let num = 1; return function() { console.log(num); num++; // dodajemy jeden } } let func = test();

Okaże się, że każde wywołanie funkcji func będzie wypisywać w konsoli nową wartość:

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

Okazuje się, że zaimplementowaliśmy licznik wywołań funkcji, używając domknięcia (a dokładniej używając zmiennej num z domknięcia naszej funkcji).

Pamiętaj, że każde wywołanie funkcji test będzie zwracać nową funkcję, która będzie miała swoje własne domknięcie. Oznacza to, że różne liczniki będą działać niezależnie:

function test() { let num = 1; return function() { console.log(num); num++; }; } let func1 = test(); // pierwszy licznik func1(); //wypisze 1 func1(); //wypisze 2 let func2 = test(); // drugi licznik func2(); //wypisze 1 func2(); //wypisze 2

Okazuje się, że ta sama zmienna num dla różnych funkcji będzie miała różne wartości!

Oznacza to, że jeśli wywołamy funkcję test dwa razy, to otrzymane z niej funkcje będą działać w sposób niezależny i każda z tych funkcji będzie miała swoją niezależną zmienną num.

Samodzielnie, bez podglądania w mój kod, zaimplementuj licznik wywołań funkcji, działający na domknięciach.

Niech funkcja w domknięciu przechowuje liczbę 10. Sprawdź, aby każde wywołanie funkcji zmniejszało tę liczbę o 1 i wypisywało w konsoli zmniejszoną liczbę.

Zmodyfikuj poprzednie zadanie tak, aby odliczanie dochodziło do 0, a następnie każde kolejne wywołanie funkcji wypisywało w konsoli komunikat o zakończeniu odliczania.

Polski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wykorzystujemy pliki cookie do działania strony, analizy i personalizacji. Przetwarzanie danych odbywa się zgodnie z Polityką prywatności.
zaakceptuj wszystkie dostosuj odrzuć