Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Subject = function() { // Приватный массив обзёрверов var observers = new Array(); // Публичный метод подключения обзёрвера this.connect = function(signal, callback) { observers[signal] = observers[signal] || new Array(); observers[signal][observers.length++] = callback; }; // Публичный метод инициализации сигнала this.emit = function(signal) { for(i = 0, n = observers[signal].length; i < n; i++) { observers[signal][i](); } } } // Тестовый объект SomeObject = function(test) { this.someMethod = function() { alert('turum-pum-pum'); } } // Наследуем от субъекта SomeObject.prototype = new Subject; Obj = new SomeObject; Obj.connect('click', function() { alert('tratata'); }); Obj.connect('click', function() { alert('tili-tili'); }); Obj.emit('click'); Obj.someMethod();
Архитектура SignalSlot для РНР веб-приложений на примере ezComponents