var EventsListener=function(){
var uniqid=-1,obj={};
//添加监听
var listen=function(key,fn){
obj[key]
?'':obj[key]=[];
var tagid=(++uniqid).toString();
obj[key].push({
id:tagid,
fn:fn
});
return tagid;
};
//发布
var publish=function(){
var key=Array.prototype.shift.call(arguments);
if(obj[key]&&obj[key].length){
for(var i=0;i<obj[key].length;i++){
var isBreak=obj[key][i].fn.apply(this,arguments);
if(isBreak===false){
return false;
}
}
}
else{
alert(
"没有监听到需要发布的对象,请核对后再次发布!!!")
}
};
//删除单个的监听
var removeone=function(token){
for(var kindlisten in obj){
if(obj[kindlisten]){
for(var i=0;i<obj[kindlisten].length;i++){
if(obj[kindlisten][i].id==token){
obj[kindlisten].splice(i,
1);
return token;
}
}
}
}
};
//删除某一类的监听
var removelistener=function(key){
if(obj[key]){
delete obj[key];
}
};

return {
listen:listen,
removelistener:removelistener,
removeone:removeone,
publish:publish
}
}

更多相关文章

  1. java使用compareTo实现一个类的对象之间比较大小
  2. 在Java中,使用DefaultSelenium对象在selenium中启动测试,我如何找
  3. Java学习第9天(6):面向对象-多态-object
  4. 如何在命令中传递对象参数?
  5. JavaScript 面向对象编程,严格过程的标准化编程法,目前为止最好的
  6. JAVA复习3 Java类和对象
  7. java对象判断是否为空工具类
  8. 【阿里云】Java面向对象开发课程笔记(十六)——抽象类

随机推荐

  1. 辅助功能 AccessibilityService笔记
  2. Android(安卓)Studio:依赖包的版本号
  3. 感受LiveData 与 ViewModel结合之美
  4. android RelativeLayout 动态添加子View
  5. PMS/AMS剖析之应用开机自启动
  6. MVC、MVP的讲解,如优缺点,使用需求场景
  7. Android(安卓)studio 更新只显示"Downloa
  8. 音频采集(AudioRecorder)
  9. Android中xml解析--实现软件升级功能
  10. android 音量设置条