From a818eabea3b97f8e5d848e27d2b31a2a285667e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B8=D1=85=D0=B0=D0=B8=D0=BB=20=D0=9A=D0=B0=D0=BF?= =?UTF-8?q?=D0=B5=D0=BB=D1=8C=D0=BA=D0=BE?= Date: Mon, 17 Jan 2022 14:34:50 +0300 Subject: [PATCH] =?UTF-8?q?=D0=BF=D0=BE=D0=BF=D1=80=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D1=82=D1=8C=20=D0=BE=D1=82=D0=BF=D0=B8=D1=81=D0=BA=D1=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 5.0/общее/100.События.js | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/5.0/общее/100.События.js b/5.0/общее/100.События.js index 50b6070..abd6710 100644 --- a/5.0/общее/100.События.js +++ b/5.0/общее/100.События.js @@ -3,18 +3,23 @@ function События(uuid) this.создать = function() { this.обработчики = []; + this.обработчики = {}; }; - this.подписать = function(обработчик) + this.подписать = function(обработчик, имя) { - this.обработчики.push(обработчик); + let указатель = имя || uuid(); + this.обработчики[указатель] = обработчик; }; this.отписать = function(обработчик) { - var номер = this.обработчики.indexOf(обработчик); - if (номер != -1) - { - this.обработчики.splice(номер, 1); + for (var указатель in this.обработчики) { + let обр = this.обработчики[указатель]; + if (обр == обработчик) + { + delete this.обработчики[указатель]; + return; + } } };