⊗jsPmClCr 263 of 505 menu

Contor cu închideri în JavaScript

Să rescriem codul pe care l-am analizat astfel încât funcția returnată să mărească de fiecare dată valoarea variabilei num cu unu:

function test() { let num = 1; return function() { console.log(num); num++; // adăugăm unu } } let func = test();

Se va întâmpla ca fiecare apel al funcției func să afișeze în consolă o nouă valoare:

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

Rezultă că am implementat un contor de apeluri de funcții, folosind o închidere (mai exact folosind variabila num din închiderea funcției noastre).

Țineți cont că fiecare apel al funcției test va returna o nouă funcție, care va avea propria sa închidere. Adică diferite contoare vor funcționa independent:

function test() { let num = 1; return function() { console.log(num); num++; }; } let func1 = test(); // primul contor func1(); //va afișa 1 func1(); //va afișa 2 let func2 = test(); // al doilea contor func2(); //va afișa 1 func2(); //va afișa 2

Rezultă că aceeași variabilă num pentru diferite funcții va avea valori diferite!

Adică dacă apelăm funcția test de două ori, atunci funcțiile obținute din ea vor funcționa independent și fiecare dintre aceste funcții va avea propria sa variabilă independentă num.

Singur, fără să te uiți la codul meu, implementează un contor de apeluri al funcției, care funcționează pe baza închiderilor.

Fie ca funcția în închidere să stocheze numărul 10. Faceți ca fiecare apel al funcției să micșoreze acest număr cu 1 și să afișeze în consolă numărul micșorat.

Modificați problema anterioară astfel încât numărătoarea inversă să ajungă la 0, apoi fiecare apel ulterior al funcției să afișeze în consolă un mesaj că numărătoarea inversă s-a încheiat.

Română
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Folosim cookie pentru funcționarea site-ului, analiză și personalizare. Prelucrarea datelor are loc în conformitate cu Politica de confidențialitate.
acceptă toate configurează respinge