Event emitter component.
$ component install component/emitter
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:
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.
Register an event
handler fn
.
Register a single-shot event
handler fn
,
removed immediately after it is invoked the
first time.
Remove event
handler fn
, or pass only the event
name to remove all handlers for event
.
Emit an event
with variable option args.
Return an array of callbacks, or an empty array.
Check if this emitter has event
handlers.