⊗jsPmClCr 263 of 505 menu

Бројач на затворања во JavaScript

Ајде да го преработиме кодот што го разгледавме така што вратената функција секој пат ја зголемува вредноста на променливата num за еден:

function test() { let num = 1; return function() { console.log(num); num++; // додаваме еден } } let func = test();

Ќе испадне дека секој повик на функцијата func ќе испишува нова вредност во конзола:

function test() { let num = 1; return function() { console.log(num); num++; } } let func = test(); func(); //ќе испише 1 func(); //ќе испише 2 func(); //ќе испише 3 func(); //ќе испише 4 func(); //ќе испише 5

Излегува дека имплементиравме бројач на повици на функции, користејќи затворање (поточно користејќи променлива num од затворањето на нашата функција).

Имајте на ум дека секој повик на функцијата test ќе враќа нова функција, која ќе има свое затворање. Тоа значи дека различни бројачи ќе работат независно:

function test() { let num = 1; return function() { console.log(num); num++; }; } let func1 = test(); // прв бројач func1(); //ќе испише 1 func1(); //ќе испише 2 let func2 = test(); // втор бројач func2(); //ќе испише 1 func2(); //ќе испише 2

Излегува дека истата променлива num за различни функции ќе има различна вредност!

Тоа значи дека ако ја повикаме функцијата test два пати, тогаш добиените од неа функции ќе работат независно и секоја од овие функции ќе има своја независна променлива num.

Самостојно, без да го погледнувате мојот код, имплементирајте бројач на повик на функција, кој работи на затворања.

Нека функцијата во затворањето чува број 10. Направете така што секој повик на функцијата ќе го намалува овој број за 1 и ќе ја прикажува намалената вредност во конзола.

Модифицирајте ја претходната задача така што одбројувањето ќе стигне до 0, а потоа секој нареден повик на функцијата ќе испишува во конзола порака дека одбројувањето е завршено.

Македонски
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ние користиме колачиња за работата на веб-страната, анализа и персонализација. Обработката на податоци се врши во согласност со Политиката за приватност.
прифати ги сите прилагоди одбиј