Существует ли библиотека или фреймворк которые позволяют объектам испускать события? Хотелось бы примерно следующего:
function Dispatcher(){
this.addEventListener = function(type, callback){
...
}
function dispathEvent = function(type){
...//при определенных условиях объект испускает событие типа type.
}
}
//...
var dispatcher = new Dispatcher();
dispatcher.addEventListener("eventType", func);//подпись на событие. При событии "eventType" выполняется функция func.
Надеюсь понятно объяснил. Сейчас подобное заменяю коллбеками, но это не всегда удобно. jQuery насколько я понял работает только с DOM.