⊗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šuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Біз сайттың жұмысы, аналитика және персонализация үшін cookie файлдарын қолданамыз. Деректерді өңдеу Құпиялылық саясаты бойынша жүреді.
барлығын қабылдау баптау қабылдамау