# Emitter Event emitter component. ## Installation ``` $ component install component/emitter ``` ## API ### Emitter(obj) The `Emitter` may also be used as a mixin. For example a "plain" object may become an emitter, or you may extend an existing prototype: ```js var obj = {}; Emitter(obj); Emitter(User.prototype); ``` __Warning__: if you use `Emitter(Some.prototype)` on a prototype you __must__ invoke `Emitter.call(this)` in the constructor to clear the callbacks object, otherwise events will be shared between multiple objects. ### Emitter#on(event, fn) Register an `event` handler `fn`. ### Emitter#once(event, fn) Register a single-shot `event` handler `fn`, removed immediately after it is invoked the first time. ### Emitter#off(event, fn) Remove `event` handler `fn`, or pass only the `event` name to remove all handlers for `event`. ### Emitter#emit(event, ...) Emit an `event` with variable option args. ### Emitter#listeners(event) Return an array of callbacks, or an empty array. ### Emitter#hasListeners(event) Check if this emitter has `event` handlers.