⊗jsPmClCr 263 of 505 menu

JavaScriptda Yopilishlar Orqali Hisoblagich

Keling, ko'rib chiqqan kodimizni qayta yozaylik, shunda qaytarilgan funktsiya har safar num o'zgaruvchisining qiymatini bittaga oshiradi:

function test() { let num = 1; return function() { console.log(num); num++; // bittaga oshiramiz } } let func = test();

Ma'lum bo'ladiki, func funktsiyasini har chaqirish konsolga yangi qiymat chiqaradi:

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

Ma'lum bo'ladiki, biz funktsiyalarni chaqirish hisoblagichini yopilish yordamida amalga oshirdik (aniqrog'i funktsiyamizning yopilishidagi num o'zgaruvchisidan foydalangan holda).

E'tiboringizni qaratamanki, test funktsiyasini har chaqirish yang funktsiyani qaytaradi, uning o'ziga xos yopilishi bo'ladi. Ya'ni turli hisoblagichlar mustaqil ishlaydi:

function test() { let num = 1; return function() { console.log(num); num++; }; } let func1 = test(); // birinchi hisoblagich func1(); //1 chiqaradi func1(); //2 chiqaradi let func2 = test(); // ikkinchi hisoblagich func2(); //1 chiqaradi func2(); //2 chiqaradi

Ma'lum bo'ladiki, num bir xil o'zgaruvchi turli funktsiyalar uchun turli qiymatga ega bo'ladi!

Ya'ni agar biz test funktsiyasini ikki marta chaqirsak, undan olingan funktsiyalar mustaqil tarzda ishlaydi va ularning har biri o'zining mustaqil num o'zgaruvchisiga ega bo'ladi.

Mustaqil ravishda, mening kodimga qaramay, yopilishlar orqali ishlaydigan funktsiyani chaqirish hisoblagichini amalga oshiring.

Funktsiya yopilishida 10 soni saqlansin. Funktsiyaning har chaqirilishi bu sonni 1 ga kamaytirsin va konsolga kamaytirilgan sonni chiqarsin.

Oldingi masalani shunday o'zgartiringki, hisob 0 ga yetgach, keyingi har bir funktsiya chaqiruvi konsolga hisob tugaganligi haqida xabar chiqarsin.

Oʻzbek
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекTiếng Việt
Biz sayt ishlashi, tahlil qilish va shaxsiylashtirish uchun cookie-fayllardan foydalanamiz. Ma'lumotlarni qayta ishlash Maxfiylik siyosatiga muvofiq amalga oshiriladi.
hammasini qabul qilish sozlash rad etish