Latihan 1 dari materi Observer Pattern di Design Patterns — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Lengkapi method listenerCount(event) di class EventEmitter supaya mengembalikan jumlah listener yang terdaftar untuk event itu, dan 0 kalau event-nya belum pernah didaftarkan.
constructor, on, dan emit sudah ada di starter dan tetap begitu.
Isi listenerCount(event): ambil array this.listeners[event], pakai cadangan [] kalau array-nya belum ada, lalu kembalikan panjangnya.
Kode di bawah class sudah ada dan tetap. Console harus mencetak empat baris ini, berurutan:
0 (click, sebelum ada listener)
2 (click, sesudah dua on)
1 (hover)
0 (scroll, yang gak pernah didaftarkan)
Yang juga dinilai: emitter baru dengan dua listener save dan satu load harus menghasilkan [2, 1, 0] untuk listenerCount('save'), listenerCount('load'), dan listenerCount('never-used').
Hint
Tiap event sudah punya array callback di this.listeners, jadi jumlah listener-nya adalah panjang array itu.
Event yang belum pernah didaftarkan gak punya array sama sekali. Pakai cadangan || [] sebelum membaca .length, sama seperti di emit.
return (this.listeners[event] || []).length;
</>{ }.css=>#idfn()
Versi baru
HyperSheets
bagian dari BelajarWeb.dev
0%
Membuka gerbang…
HyperSheets
Memperbarui Aplikasi
Versi baru tersedia. Halaman akan dimuat ulang otomatis...