function signalize(val){
var events={};
val.connect=function(name,func){
if(func.constructor!=Function)return;
if(!events[name])events[name]=[];
events[name].push(func);
}
val.disconnect=function(name,func){
var list=[];
for(var i in events[name])
if(events[name][i]!=func)
list.push(events[name][i]);
events[name]=list;
}
val.emit=function(){
var name=arguments[0];
var rest=Array.prototype.slice.call(arguments, 1);
for(var i in events[name])
events[name][i].apply(val,rest);
}
return val;
}
Жду замечаний и предложений.
Немає коментарів:
Дописати коментар