You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

32 lines
896B

  1. function События()
  2. {
  3. this.создать = function()
  4. {
  5. this.обработчики = [];
  6. };
  7. this.подписать = function(обработчик)
  8. {
  9. this.обработчики.push(обработчик);
  10. };
  11. this.отписать = function(обработчик) {
  12. var номер = this.обработчики.indexOf(обработчик);
  13. if (номер != -1)
  14. {
  15. this.обработчики.splice(номер, 1);
  16. }
  17. };
  18. this.уведомить = function(событие) {
  19. for (var номер in this.обработчики)
  20. {
  21. var обработчик = this.обработчики[номер];
  22. обработчик.обработатьСобытие(событие);
  23. }
  24. };
  25. // Конструктор.
  26. this.создать();
  27. }