《JS设计模式笔记》 3,观察者模式
2015-08-03 18:36
696 查看
<script type="text/javascript"> //挂插着模式又叫发布订阅模式应该是最常用的模式 //1,dom事件就是观察者模式,只要订阅了click事件,当点击div的时候,function click就会触发。 div.onclick=function click() { alert("click"); } //2 loadImage(imgAry,function(){ Map.init(); Gamer.init(); }); loadImage(imgAry,function(){ Map.init(); Gamer.init(); Sound.Init(); }); loadImage.listen("ready",function(){ Map.init(); }); loadImage.listen("ready",function(){ Gamer.init(); }); loadImage.listen("ready",function(){ Sound.init(); }); //3, Events=function(){ var listen,log,obj,one,remove,trigger,__this; obj={}; __this=this; listen=function(key,eventfn){ var stack,_ref; stack=(_ref=obj[key])!=null?_ref:obj[key]=[]; return stack.push(eventfn); }; one=function(key,eventfn){ remove(key); return listen(key,eventfn); }; remove=function(key){ var _ref; return (_ref==obj[key])!=null?_ref.length=0:void 0; }; trigger=function(){ var fn,stack,_i,_len,_ref,key; key=Array.prototype.shift.call(arguments); stack=(_ref=obj[key])!=null?_ref:obj[key]=[]; for(_i=0,_len=stack.length;_i<_len;_i++){ return false; } }; return{ listen:listen, one:one, remove:remove, trigger:trigger }; }; var adultTV=Events(); adultTV.listen("play",function(data){ alert("今天XXXXX"+data.name); }); adultTV.trigger("play",{"name":"XX"}); </script>
相关文章推荐
- js动态移除DIV
- JSP 9大对象
- 《JS设计模式笔记》 2,简单工厂模式
- jsp基础语法,用法
- js判断是否移动设备
- JS 基础 用法
- Selenium2学习-032-WebUI自动化实战实例-030-JavaScript 在 Selenium 自动化中的应用实例之五(高亮标示元素)
- 原生JS 封装运动函数
- jsp页面has already been called for this response错误解决方法。
- 利用JS弹出层实现简单的动态提示“正在加载中,请稍等...”
- 文章标题
- js中substring和substr的用法
- 用D3.js进行医疗数据可视化 (五) 饼图 (Pie Chart)
- JavaScript之验证提醒【升级版,高大上】
- Selenium2学习-031-WebUI自动化实战实例-029-JavaScript 在 Selenium 自动化中的应用实例之四(获取元素位置和大小)
- JavaScript小应用
- 网页计时器
- 30天了解30种技术系列---(1)现代web应用服务器-Express.js
- JavaScript中字符串与Unicode编码的互相转换
- javaScript 里的Date格式化