⊗jsPmClCr 263 of 505 menu

Skaitītājs ar aizvērumiem JavaScript

Pārrakstīsim apskatīto kodu tā, lai atgrieztā funkcija katru reizi palielinātu mainīgā num vērtību par vienu:

function test() { let num = 1; return function() { console.log(num); num++; // pieskaitām vienu } } let func = test();

Izrādīsies, ka katrs funkcijas func izsaukums izvadīs konsolē jaunu vērtību:

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

Izrādās, ka mēs esam realizējis funkciju izsaukumu skaitītāju, izmantojot aizvērumu (precīzāk, izmantojot mainīgo num no mūsu funkcijas aizvēruma).

Ņemiet vērā, ka katrs funkcijas test izsaukums atgriezīs jaunu funkciju, kurai būs savs aizvērums. Tas nozīmē, ka dažādi skaitītāji strādās neatkarīgi:

function test() { let num = 1; return function() { console.log(num); num++; }; } let func1 = test(); // pirmais skaitītājs func1(); //izvadīs 1 func1(); //izvadīs 2 let func2 = test(); // otrais skaitītājs func2(); //izvadīs 1 func2(); //izvadīs 2

Izrādās, ka viens un tas pats mainīgais num dažādām funkcijām būs atšķirīga vērtība!

Tas nozīmē, ka, ja mēs izsauksim funkciju test divas reizes, tad no tās iegūtās funkcijas strādās neatkarīgi un katra no šīm funkcijām būs savs neatkarīgs mainīgais num.

Patstāvīgi, neieskatoties manā kodā, realizējiet funkcijas izsaukumu skaitītāju, kas strādā ar aizvērumiem.

Lai funkcija aizvērumā glabā skaitli 10. Izdariet tā, lai katrs funkcijas izsaukums samazinātu šo skaitli par 1 un izvadītu konsolē samazināto skaitli.

Modificējiet iepriekšējo uzdevumu tā, lai atskaitīšana sasniegtu 0, un pēc tam katrs sekojošs funkcijas izsaukums izvadītu konsolē ziņojumu par to, ka atskaitīšana ir pabeigta.

Latviešu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mēs izmantojam sīkdatnes, lai nodrošinātu vietnes darbību, analīti un personalizāciju. Datu apstrāde notiek saskaņā ar Konfidencialitātes politiku.
pieņemt visus iestatīt noraidīt