Latihan 1: Decorator Pattern — Design Patterns

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:

  1. Sebelum menjalankan fn, cetak "Calling " + fn.name.
  2. Jalankan fn dengan semua argumen yang diterima: fn(...args).
  3. Sesudahnya, cetak "Result: " + hasil.
  4. 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:

  1. Calling add
  2. Result: 7
  3. 7
  4. Calling multiply
  5. Result: 30
  6. 30

Yang juga dinilai: withLogging((a, b) => a - b)(9, 4) harus mengembalikan 5.

Hint