⊗jsPmClCr 263 of 505 menu

JavaScript'te Kapanışlar Üzerinde Sayaç

Şimdi ele aldığımız kodu, döndürülen fonksiyonun her seferinde num değişkeninin değerini bir artırması şeklinde yeniden yazalım:

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

Böylece, func fonksiyonunun her çağrılışı konsola yeni bir değer yazdıracaktır:

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

Görüldüğü gibi, bir kapanış (daha doğrusu fonksiyonumuzun kapanışındaki num değişkenini) kullanarak bir fonksiyon çağrısı sayacı gerçekleştirdik.

Unutmayın, test fonksiyonunun her çağrılışı kendi kapanışına sahip yeni bir fonksiyon döndürecektir. Yani farklı sayaçlar bağımsız çalışacaktır:

function test() { let num = 1; return function() { console.log(num); num++; }; } let func1 = test(); // ilk sayaç func1(); //1 yazdırır func1(); //2 yazdırır let func2 = test(); // ikinci sayaç func2(); //1 yazdırır func2(); //2 yazdırır

Sonuç olarak, aynı num değişkeni farklı fonksiyonlar için farklı değerlere sahip olacak!

Yani, test fonksiyonunu iki kez çağırırsak, ondan elde edilen fonksiyonlar bağımsız şekilde çalışacak ve bu fonksiyonların her biri kendi bağımsız num değişkenine sahip olacaktır.

Benim koduma bakmadan, kendi başınıza kapanışlar kullanarak çalışan bir fonksiyon çağrı sayacı gerçekleştirin.

Fonksiyonun kapanışında 10 sayısını saklasın. Fonksiyonun her çağrılışında bu sayıyı 1 azaltmasını ve azaltılmış sayıyı konsola yazdırmasını sağlayın.

Önceki görevi, geri sayım 0'a ulaştığında ve sonraki her fonksiyon çağrısının konsola geri sayımın tamamlandığını belirten bir mesaj yazdırması şeklinde değiştirin.

Türkçe
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenЎзбекOʻzbekTiếng Việt
Web sitesinin çalışması, analiz ve kişiselleştirme için çerezleri kullanıyoruz. Veri işleme, Gizlilik Politikası'na uygun olarak gerçekleşir.
tümünü kabul et özelleştir reddet