CodeBlanks Logo Icon CodeBlanks

Meydan okuma - Modüler yapı

JavaScript kursu · Orta seviye · Ders 134/134

ES modülleri ve closure ile özel durumu olan bir sayaç modülü yazarsın.

Sayaç modülü

Bu meydan okumada özel durumlu bir sayaç modülü yazacaksın. Dışarıdan yalnızca artırma ve okuma verilir; sayacın kendisine doğrudan erişilemez.

Bunun için bir closure kullanırsın. createCounter fonksiyonu içerde let count = 0 tanımlar ve increment ile getCount yöntemlerini döndürür.

Son olarak export default createCounter ile fonksiyonu modülden dışa aktarırsın. Başka dosyalar bunu import edip kullanabilir.

Closure ile gizli durum

Bir closure, iç fonksiyonun dış fonksiyonun değişkenlerine erişmesidir. createCounter çağrılınca yeni bir count oluşur ve yalnızca döndürülen yöntemler onu görür.

Dışarıdan counter.count yazamazsın; çünkü count nesnenin özelliği değil, kapanımın değişkenidir.

Bu teknik modül kalıbının temelidir: genel API açık, iç durum gizli kalır.

Uygulama createCounter fonksiyonunu yaz

createCounter() fonksiyonunu yaz. İçinde let count = 0 tanımla. increment ve getCount yöntemleri olan bir nesne döndür: increment sayacı bir artırır, getCount mevcut değeri verir. En sonda export default createCounter satırını ekle.

Örnek çözümü göster
function() { count = count + 1; }, getCount: function() { return count; } }; döndür. En son satıra export default createCounter; ekle.

Örnek çözüm:
function createCounter() {
  let count = 0;
  return {
    increment: function() { count = count + 1; },
    getCount: function() { return count; }
  };
}
export default createCounter;

Kendini test et

  1. ES modüllerinde varsayılan dışa aktarım nasıl yazılır?

    • export default createCounter
    • module.exports = createCounter
    • exports.createCounter
    • public createCounter
    Cevabı göster

    export default createCounter — Doğru. export default modülden tek varsayılan değer çıkarır.

  2. Varsayılan dışa aktarımı yaz

    export ____;
    Cevabı göster
    export default createCounter;

Orta seviye bölümündeki tüm dersler