美文网首页
js-观察者模式简单实现

js-观察者模式简单实现

作者: 雨蒙_snow | 来源:发表于2018-07-31 18:53 被阅读0次

function Emitter() {
this.handlers = {};
}
Emitter.prototype = {
on: function(type, cb) {
var _this = this;
if(!(type in _this.handlers)) {
_this.handlers[type] = [];
}
_this.handlers[type].push(cb);
return _this;
},
emit: function(type) {
var _this = this;
var argsArr = Array.prototype.slice.call(arguments, 1);
for(var i=0;i<_this.handlers[type].length;i++) {
_this.handlers[type][i].apply(_this, argsArr);
}
return _this;
}
}

var emit = new Emitter();
emit.on('say', ()=>{console.log('i am on')});
emit.emit('say');

相关文章

  • js-观察者模式简单实现

    function Emitter() {this.handlers = {};}Emitter.prototype...

  • RN的传值相关

    观察者模式 通过EventEmitter实现事件机制,实现简单的观察者模式。发送端、接受端同时需要引入Device...

  • iOS KVO观察者模式的深入理解

    谈到KVO我们就会联想到『观察者模式』,其实KVO就是在oc中实现观察者模式。那下面就对观察者做一个简单介绍: 观...

  • 观察者模式和发布订阅模式区别

    观察者模式 所谓观察者模式,其实就是为了实现松耦合(loosely coupled)。 在观察者模式中,观察者需要...

  • 【设计模式】观察者模式 和 发布订阅模式

    目录:观察者模式发布-订阅模式观察者模式和发布订阅模式的区别实现vue数据双向绑定 (1)观察者模式 (1)概念 ...

  • 观察者模式_20190912(python)

    一、观察者模式介绍 二、观察者模式UML 三、python实现观察者模式(demo1、2) 1、demo1 """...

  • 学习 Vue 中观察者模式

    贴一个 Vue 中源码的观察者模式源码 手动实现观察者模式 观察者模式和订阅发布模式的区别 观察者模式是由具体的目...

  • 简单实现观察者模式

    主题接口 观察者接口 主题内容类 主题实现类 观察者实现类 测试执行

  • JS-简单实现发布订阅模式

    发布订阅模式主要涉及三个对象:发布者、订阅者、主题对象。 发布-订阅模式 定义  发布-订阅模式又称观察者模式,它...

  • 设计模式

    常用的设计模式:单例模式,工厂模式,观察者模式,代理模式,其他的我使用不多。单例模式最常见也最简单分为几种实现:懒...

网友评论

      本文标题:js-观察者模式简单实现

      本文链接:https://www.haomeiwen.com/subject/dbzhvftx.html