发布—订阅模式又叫观察者模式(也有人硬是区分开,不过思想基本类似),它定义对象间的一种一对多的依赖关系,当一个对象的状态发生了改变时,所有依赖于它的对象都将得到通知。在javascript开发中,我们
发布—订阅模式又叫观察者模式(也有人硬是区分开,不过思想基本类似),它定义对象间的一种一对多的依赖关系,当一个对象的状态发生了改变时,所有依赖于它的对象都将得到通知。在javascript开发中,我们一般都用事件模型来替代传统的发布—订阅模式。
用过javascript中的事件绑定就是典型的该模式。
document.body.addEventListener(‘click’,function(){ alert(2); },false); document.body.click();
例子:小明去售楼中心问房价,售楼中心还没开盘,说让他登记联系方式等开盘,告诉他,那么小丽去了,也是这样的流程。这就是该模式。
var salesCenter = { //售楼中心 customerList:[], //用户登记手册 addCustomer: function(fn){ this.customerList.push(fn); }, noticeCustomer: function(){ for(var i=0, fn; fn = this.customerList[i++];){ fn.apply(this, arguments); } }}salesCenter.addCustomer(function(){ //登记一个动作 console.log('我是小明');})salesCenter.addCustomer(function(){ //登记一个动作 console.log('我是小丽');})salesCenter.noticeCustomer() //通知他们过来
完整的还有一个remove动作,删除登记用户,那就是作业了,自己补充。