Skip to content

Instantly share code, notes, and snippets.

@samleb
Created November 17, 2010 00:58
Show Gist options
  • Select an option

  • Save samleb/702823 to your computer and use it in GitHub Desktop.

Select an option

Save samleb/702823 to your computer and use it in GitHub Desktop.
function makeObservable(object) {
var _listeners = {},
_slice = [].slice;
function addEventListener(eventName, handler) {
var handlers = _listeners[eventName];
if (!handlers) {
handlers = _listeners[eventName] = [];
}
handlers.push(handler);
return object;
}
function fireEvent(eventName) {
var handlers = _listeners[eventName],
args;
if (handlers) {
args = _slice.call(arguments, 1);
for (var i = 0, h; h = handlers[i]; i++) {
h.apply(object, args);
}
}
return object;
}
object.addEventListener = addEventListener;
object.fireEvent = fireEvent;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment