Решение:
var customEvents = {
_handlers : {},
subscribe: function(event, handler){
if(typeof(this._handlers[event])=="undefined")
this._handlers[event]=[];
this._handlers[event].push(handler);
},
fire:function(event, data){
if(this._handlers[event]){
for(var i = 0; i < this._handlers[event].length; i++){
this._handlers[event][i](data);
}
}
}
};
var myObj1 = new function(){
this.handler = function(data){
console.log(data+'1');
};
customEvents.subscribe("greatEvent", this.handler);
};
var myObj2 = new function(){
this.handler = function(data){
console.log(data+'2');
};
customEvents.subscribe("greatEvent", this.handler);
};
//что-то где-то произошло
customEvents.fire("greatEvent", 'ta-da');
всем спасибо, все свободны