function События() { this.создать = function() { this.обработчики = []; }; this.подписать = function(обработчик) { this.обработчики.push(обработчик); }; this.отписать = function(обработчик) { var номер = this.обработчики.indexOf(обработчик); if (номер != -1) { this.обработчики.splice(номер, 1); } }; this.уведомить = function(событие) { for (var номер in this.обработчики) { var обработчик = this.обработчики[номер]; обработчик.обработатьСобытие(событие); } }; // Конструктор. this.создать(); }