Skip to the editor
JSGroundwork
JSGroundwork handwritten · web dev
←Back to DOM & events

Ready to read

JSJavaScript⑂Git◎Interview prepΣDSA in JSSDSystem Design
More topics15›
</>HTML{ }CSS⚛ReactNNext.jsNeNest.jsTSTypeScriptNoNode.js🐳DockerDBSQL & Databases✓Testing🔒Web Security☁Cloud & DevOps◈GraphQL◆Redis☸Kubernetes
☰‹›
Description
All topics›JavaScript›DOM & events

Build a mini event emitter

beginnerlayer B6 · DOM & events4 tests

The DOM's addEventListener pattern, without a DOM: write createEmitter() returning { on, off, emit }.

  • on(event, fn) registers a listener
  • off(event, fn) removes that exact listener
  • emit(event, ...args) calls every listener still registered for that event, in order, with those arguments
  • Emitting an event with no listeners must not throw

Stuck?

All exercisesPlayground
1234567891011121314
loading the editor…

Nothing yet — hit Run and whatever you log shows up here.

Submit to see how you did.

⌘/Ctrl + Enter run⌘/Ctrl + S save⌘/Ctrl + / comment⌘/Ctrl + F find/replace⌘/Ctrl + D select next matchAlt + click multi-cursorTab indent · ⇧Tab outdentEsc leave fullscreen