В .NET вы можете добавить несколько обработчиков к событию, которое объект объявляет как событие.
Каков рекомендуемый способ обработки этого в JavaScript для объектов, не относящихся к DOM?
т.е. У меня есть объект:
var ProblemDomainObj = {} ;
ProblemDomainObj.Changed = function() {} ;
ProblemDomainObj.Data = { somedata : "initialized" } ;
ProblemDomainObj.Operate = function (newdata) {
if (newdata != somedata && ProblemDomainObj.IsValid(newdata)) {
somedata = newdata;
ProblemDomainObj.Changed();
}
} ;
Теперь другие объекты могут захотеть зарегистрироваться, чтобы знать, что данные изменились, и каждый хочет сделать что-то вроде этого:
ProblemDomainObj.Changed += function() {
/* Do stuff to reflect the object model changes */
} ;
Где каждый может зарегистрировать свой обработчик, не перезаписывая другой.
Тогда какой-нибудь объект вызовет ProblemDomainObj.Operate(foo);
, и все подписавшиеся получат уведомление.
Я нашел документацию в jQuery для http://api.jquery.com/on/, но, похоже, она связана с событиями DOM, такими как onclick. Ничто из этого не обязательно будет связано с DOM.