⊗jsPmClCr 263 of 505 menu

Skaitiklis su uždariniais JavaScript

Perrašykime anksčiau nagrinėtą kodą taip, kad grąžinama funkcija kiekvieną kartą padidintų kintamojo num reikšmę vienetu:

function test() { let num = 1; return function() { console.log(num); num++; // pridedame vienetą } } let func = test();

Pasirodo, kad kiekvienas funkcijos func iškvietimas atspausdins konsolėje naują reikšmę:

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

Pasirodo, kad mes įgyvendinome funkcijų iškvietimų skaitiklį, naudodami uždarinį (tiksliau, naudodami kintamąjį num iš mūsų funkcijos uždarinio).

Turėkite omenyje, kad kiekvienas funkcijos test iškvietimas grąžins naują funkciją, kuri turės savo uždarinį. Tai reiškia, kad skirtingi skaitikliai veiks nepriklausomai:

function test() { let num = 1; return function() { console.log(num); num++; }; } let func1 = test(); // pirmasis skaitiklis func1(); //atspausdins 1 func1(); //atspausdins 2 let func2 = test(); // antrasis skaitiklis func2(); //atspausdins 1 func2(); //atspausdins 2

Pasirodo, kad tas pats kintamasis num skirtingoms funkcijoms turės skirtingą reikšmę!

Tai reiškia, kad jei mes iškviestume funkciją test du kartus, tai iš jos gautos funkcijos veiktų nepriklausomai ir kiekviena iš šių funkcijų turės savo nepriklausomą kintamąjį num.

Savarankiškai, nežiūrėdami į mano kodą, įgyvendinkite funkcijos iškvietimų skaitiklį, veikiantį naudojant uždarinius.

Tegul funkcija uždaryme saugo skaičių 10. Padarykite taip, kad kiekvienas funkcijos iškvietimas sumažintų šį skaičių 1 ir atspausdintų konsolėje sumažintą skaičių.

Modifikuokite ankstesnį uždavinį taip, kad atgalinis skaičiavimas pasiektų 0, o tada kiekvienas vėlesnis funkcijos iškvietimas atspausdintų konsolėje pranešimą, kad atgalinis skaičiavimas baigtas.

Lietuvių
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mes naudojame slapukus svetainės veikimui, analizei ir personalizavimui. Duomenų apdorojimas vyksta pagal Privatumo politiką.
priimti visus nustatyti atšaukti