文档章节

javascript的发布/订阅模式(三)

stone_
 stone_
发布于 2016/05/19 16:23
字数 279
阅读 32
收藏 0

发布—订阅模式又叫观察者模式(也有人硬是区分开,不过思想基本类似它定义对象间的一种一对多的依赖关系,当一个对象的状态发生了改变时,所有依赖于它的对象都将得到通知。在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动作,删除登记用户,那就是作业了,自己补充。

© 著作权归作者所有

stone_
粉丝 21
博文 221
码字总数 163611
作品 0
洛阳
程序员
私信 提问
《JavaScript 模式》知识点小抄本(下)

介绍 最近开始给自己每周订个学习任务,学习结果反馈为一篇文章的输出,做好学习记录。 这一周(02.25-03.03)我定的目标是《JavaScript 模式》的第七章学习一遍,学习结果的反馈就是本篇文章啦...

pingan8787
03/04
0
0
JavaScript设计模式系列--发布订阅模式

发布订阅模式是JavaScript设计模式系列中 特别重要的一种,特别重要,特别重要 ··· 思考一下 什么是设计模式? 设计模式是 前人总结的用于解决开发过程中某类问题的方法。 什么是设计模式...

上古神鹏
05/13
0
0
JavaScript设计模式总结

之前看过《JavaScript设计模式与开发实践》这本书,对书中的设计模式和一些相关案例也有了一定的了解,同时把这些设计模式的应用对应在在一些其他的项目中,进行了一些整理,如下仅供参考: ...

jefferyE
03/26
0
0
《前端面试手记》之JavaScript基础知识梳理(下)

👇 内容速览 👇 实现ES5继承的4种方法 原型和原型链 作用域和作用域链 Event Loop 执行上下文 闭包的理解和分析 🔍查看全部教程 / 阅读原文🔍 ES5继承 题目:ES5中常用继承方法。 方...

godbmw
04/03
0
0
JavaScript 观察者 (发布/订阅) 模式

定义 观察者模式定义了对象之间一对对多的依赖关系,当一个对象改变了状态,它的所有依赖会被通知,然后自动更新。 和其他模式相比,这种模式又增加了一个原则: 在相互作用的对象之间进行松散...

缪宇
2018/06/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

排序––快速排序(二)

根据排序––快速排序(一)的描述,现准备写一个快速排序的主体框架: 1、首先需要设置一个枢轴元素即setPivot(int i); 2、然后需要与枢轴元素进行比较即int comparePivot(int j); 3、最后...

FAT_mt
36分钟前
3
0
mysql概览

学习知识,首先要有一个总体的认识。以下为mysql概览 1-架构图 2-Detail csdn |简书 | 头条 | SegmentFault 思否 | 掘金 | 开源中国 |

程序员深夜写bug
今天
9
0
golang微服务框架go-micro 入门笔记2.2 micro工具之微应用利器micro web

micro web micro 功能非常强大,本文将详细阐述micro web 命令行的功能 阅读本文前你可能需要进行如下知识储备 golang分布式微服务框架go-micro 入门笔记1:搭建go-micro环境, golang微服务框架...

非正式解决方案
今天
6
0
前端——使用base64编码在页面嵌入图片

因为页面中插入一个图片都要写明图片的路径——相对路径或者绝对路径。而除了具体的网站图片的图片地址,如果是在自己电脑文件夹里的图片,当我们的HTML文件在别人电脑上打开的时候图片则由于...

被毒打的程序猿
今天
8
0
Flutter 系列之Dart语言概述

Dart语言与其他语言究竟有什么不同呢?在已有的编程语言经验的基础上,我们该如何快速上手呢?本篇文章从编程语言中最重要的组成部分,也就是基础语法与类型变量出发,一起来学习Dart吧 一、...

過愙
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部