pwn
A <100 SLOC mangling of a JavaScript eventing system.
- Delegate to it from your own constructed objects!
pwn
your objects using obj.prototype = Object.create(pwn);
That's right - don't even worry about your constructor - that's
some pseudo-classical garbage. You pwned it.
- Register new event listeners
// obj.on(event, callback, context) obj; // register listener with this contextobj; // register listener with obj's context
- Unregister old event listeners
// obj.off(event, callback, context) obj; // remove like callbacks with like contextobj; // remove like callbacks with any contextobj; // remove all registered listeners to 'change'obj; // remove all registered listeners to all events
- Set properties
// obj.set(property, value) obj // returns 440/** * Triggers callbacks registered to 'change' * as callback(obj, { * p: property, * w: wornValue, // (oldValue) * n, value * }) */
- Get properties
// obj.get(property, value) obj // returns 440
- Trigger events yourself
//obj.trigger(event, options) obj;/** * Triggers callbacks registered to 'change' * as callback(obj, 'p', 'w', 'n', 'e', 'd'); */
They're even chainable (on
, off
, and trigger
)!
Inspired by backbone.js.