function События(uuid) { this.создать = function() { this.обработчики = []; this.обработчики = {}; }; this.подписать = function(обработчик, имя) { let указатель = имя || uuid(); this.обработчики[указатель] = обработчик; }; this.отписать = function(обработчик) { for (var указатель in this.обработчики) { let обр = this.обработчики[указатель]; if (обр == обработчик) { delete this.обработчики[указатель]; return; } } }; this.уведомить = function(событие) { for (var номер in this.обработчики) { var обработчик = this.обработчики[номер]; обработчик.обработатьСобытие(событие); } }; // Конструктор. this.создать(); }