37 lines
1.1 KiB
JavaScript
37 lines
1.1 KiB
JavaScript
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.создать();
|
||
}
|