<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设计模式笔记》 3,观察者模式的更多相关文章

  1. (四)JS学习笔记 - 模式 - 观察者模式

    理解观察者模式 简单的讲,一个对象作为特定任务或是另一对象的活动的观察者,并且在这个任务或活动发生时,利用事件的形式通知观察者. 观察者的使用场合 当一个对象的改变需要同时改变其它对象,并且它不知道具 ...

  2. js设计模式之实现观察者模式实例代码

    前端界面 html代码 <body> <select name="" id="select"> <option value=&qu ...

  3. 《JS设计模式笔记》构造函数和工厂模式创建对象

    工厂模式 function createPerson (name,age,job) { var o=new Object(); o.name=name; o.age=age; o.job=job; o ...

  4. 《JS设计模式笔记》 5,适配器模式

    //适配器模式的作用就像一个转接口. jQuery("#"+id); $id=function (id) { return jQuery("#"+id)[0]; ...

  5. 《JS设计模式笔记》 4,桥接模式

    //桥接模式的作用在于将实现部分和抽象部分分离开来,以便两者可以独立的变化. var singleton=function(fn){ var result; return function(){ re ...

  6. 《JS设计模式笔记》 2,简单工厂模式

    <script type="text/javascript"> //简单工厂模式 //定义:由一个方法来决定到底要创建哪个类的实例,而这些实例经常拥有相同的接口.其实例 ...

  7. 《JS设计模式笔记》 1,单例模式

    <script type="text/javascript"> //单例模式 //1,每次点击都会生成一个新的div var createMask=function ( ...

  8. js设计模式-观察者模式

    定义: 观察者模式又叫发布订阅模式,它定义了对象间的一种一对多的依赖关系.观察者模式让两个对象松耦合地联系在一起,虽然不太清楚彼此的细节,但这不影响他们之间的互相通信. 思路 定义一个对象,在对象中实 ...

  9. 前端笔记之JavaScript面向对象(三)初识ES6&underscore.js&EChart.js&设计模式&贪吃蛇开发

    一.ES6语法 ES6中对数组新增了几个函数:map().filter().reduce() ES5新增的forEach(). 都是一些语法糖. 1.1 forEach()遍历数组 forEach() ...

随机推荐

  1. MD5加密的Java实现

    在各种应用系统中,如果需要设置账户,那么就会涉及到储存用户账户信息的问题,为了保证所储存账户信息的安全,通常会采用MD5加密的方式来,进行储存.首先,简单得介绍一下,什么是MD5加密. MD5的全称是 ...

  2. About_全在里面

    分享·地址:http://www.itxueyuan.org/view/6254.html

  3. Ansible-playbook批量部署,更新war脚本,可以再完善----后续再update

    - name: install tomcat admin hosts: all sudo: True vars: war_file: /root/test.war tomcat_root: /data ...

  4. 通读SDWebImage③--gif和webP的支持、不同格式图片的处理、方向处理

    本文目录 NSData+ImageContentType: 根据NSData获取MIME UIImage+GIF UIImage+WebP UIImage+MultiFormat:根据NSData相应 ...

  5. C#按照指定长度分割中英文字符串

    最近有一个需求:玩家发的不同长度文字,需要自适应行数. 初步实现想法很简单,直接获取字符数均分行数,再利用string.substring()切割即可.但是显而易见,由于一般字体下,中文显示宽度一般是 ...

  6. SQL Server 高级sql总结

    ----------------------------------------------------------------------Select------------------------ ...

  7. html 5 canvas画布整理

    1. 创建canvas画布<canvas id="myCanvas" width="800" height="800" >< ...

  8. wdk中ramdisk代码解读

    入口函数,即驱动加载函数 NTSTATUS DriverEntry( IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING RegistryPath ) ...

  9. 通过远程 http API 来控制 lnmp 环境的重启perl脚本

    #!/usr/bin/perl use DBD::mysql; use strict; use warnings; use DBI; use utf8; binmode(STDOUT, ':encod ...

  10. 细数iOS上的那些安全防护

    细数iOS上的那些安全防护  龙磊,黑雪,蒸米 @阿里巴巴移动安全 0x00 序 随着苹果对iOS系统多年的研发,iOS上的安全防护机制也是越来越多,越来越复杂.这对于刚接触iOS安全的研究人员来说非 ...