Идея состоит в том, чтобы сохранить указатель на функцию обратного вызова при привязке, а затем просто вызвать эту функцию обратного вызова при запуске.
Действительно простая реализация:
({
// save the function in an internal _callbacks object
bind: function(name, callback) {
this._callbacks || (this._callbacks = {});
this._callbacks[name] || (this._callbacks[name] = []);
this._callbacks[name].push(callback);
return this;
},
// when triggering, look up the function and call it with the current context
trigger: function(ev) {
var callback, i;
for (i = 0; _i < this._callbacks[ev]; i++) {
callback = this._callbacks[ev][i];
callback.apply(this, args); // this is the 'trigger' magic
}
return true;
}
});