Latihan 1 dari materi Decorator Pattern di Design Patterns — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Lengkapi decorator withLogging(fn) supaya mengembalikan function baru yang membungkus fn:
Sebelum menjalankan fn, cetak "Calling " + fn.name.
Jalankan fn dengan semua argumen yang diterima: fn(...args).
Sesudahnya, cetak "Result: " + hasil.
Kembalikan hasil dari fn.
Function add(a, b), multiply(a, b), dan kode pemanggilnya sudah ada di starter dan tetap. Console harus mencetak enam baris ini, berurutan:
Calling add
Result: 7
7
Calling multiply
Result: 30
30
Yang juga dinilai: withLogging((a, b) => a - b)(9, 4) harus mengembalikan 5.
Hint
Decorator gak mengubah add atau multiply. withLogging menerima function, lalu mengembalikan function baru yang mencatat, memanggil yang asli, mencatat lagi, dan meneruskan hasilnya.
return function (...args) { ... }. Di dalamnya: console.log("Calling " + fn.name), lalu const hasil = fn(...args), lalu console.log("Result: " + hasil), lalu return hasil.
function withLogging(fn) { return function (...args) { console.log("Calling " + fn.name); const hasil = fn(...args); console.log("Result: " + hasil); return hasil; }; }
</>{ }.css=>#idfn()
Versi baru
HyperSheets
bagian dari BelajarWeb.dev
0%
Membuka gerbang…
HyperSheets
Memperbarui Aplikasi
Versi baru tersedia. Halaman akan dimuat ulang otomatis...