var Event = (function() {
var clientList = {};
var listen,
trigger,
remove;
listen = function(key, fn) {
if (!clientList[key]) {
clientList[key] = [];
}
clientList[key].push(fn);
};
trigger = function() {
var key = [].shift.call(arguments);
var fns = clientList[key];
if (!fns || fns.length === 0) {
return false;
}
for (var i = 0, fn; fn = fns[i++];) {
fn.apply(this, arguments);
}
};
remove = function(key, fn) {
var fns = clientList[key];
if (!fns) {
return false;
}
if (!fn) {
fns && (fns.length = 0);
}
else {
for (var i = fns.length - 1; i >= 0; i--) {
var _fn = fns[i];
if (_fn === fn) {
fns.splice(i, 1);
}
}
}
};
return {
listen: listen,
trigger: trigger,
remove: remove
}
}());
分享到:
相关推荐
js发布订阅模式
javaScript发布订阅模式代码实现思路,有平台,发布者,订阅者
在JavaScript中,我们可以创建一个简单的订阅发布者实现,如示例所示。首先,我们创建一个名为`pubsub`的闭包,该闭包包含三个核心方法:`publish`、`subscribe`和`unsubscribe`。 1. `publish`方法:这个方法用于...
JavaScript手写发布订阅
本文将深入探讨原生JS实现的发布订阅模式,以及如何参考jQuery的callbacks模块来构建类似功能。 首先,我们需要理解回调函数的核心概念。回调函数是一种将函数作为参数传递给另一个函数,然后在适当的时间由该函数...
在压缩包中的 `main.js` 文件中,你可以找到一个实际的发布/订阅模式实现示例。`README.txt` 文件可能包含有关如何使用这个实现的说明。通过阅读和理解这些文件,你可以更好地掌握JavaScript中的发布/订阅模式。
本篇文章将深入探讨“事件发布/订阅模式”,并结合提供的`eventjs`模块进行详细讲解。 事件发布/订阅模式(也称为发布/订阅者模式或观察者模式)是一种设计模式,它允许对象之间的解耦。在这种模式中,我们有三个...
实例如下: //导入内置模块 let EventEmitter = require('events'); let util=require('util'); //Man继承EventEmitter util.inherits(Man,EventEmitter); //创建一个函数 function Man(){} ...man.on('失恋',findGirl...
标题中的“redis绑定webSocket发布订阅连接推送”指的是在Web应用中使用Redis作为消息中间件,结合WebSocket技术来实现实时的数据推送。Redis是一个高性能的键值存储系统,支持多种数据结构,如字符串、哈希、列表、...
这个压缩包“js订阅mqtt.rar”可能还包含了示例代码、配置文件和详细步骤,帮助开发者快速理解和实现H5页面直接订阅和发布MQTT消息的功能。这大大简化了前端与物联网设备的直接通信,尤其适用于那些希望在不增加后端...
//发布订阅模式 class EventEmiter{ constructor(){ //维护一个对象 this._events={ } } on(eventName,callback){ if( this._events[eventName]){ //如果有就放一个新的 this._events[eventName].push...
在本例中,`pubAndSub.js`是一个封装了发布订阅模式的库,利用了浏览器内置的API,使得开发者可以在应用中更方便地实现事件驱动的编程。 首先,我们要理解发布订阅模式的基本概念。在这个模式中,"发布者"...
`pubsub-js` 是一个轻量级的JavaScript库,它实现了一个简单易用的发布订阅者模式,为开发者提供了高效的消息传递机制。 Pub/Sub模式的核心思想是发布者与订阅者之间的解耦。发布者只需要发布消息,而不需要知道谁...
onfire.js 是一个很简单的事件分发的Javascript库(仅仅 0.9kb),简洁实用。 可以用于: 简单的事件分发; 在 react / vue.js / angular 用于跨组件的轻量级实现; 事件订阅...
在讲解JavaScript事件发布/订阅模式的原理和使用方法之前,我们先要了解什么是设计模式。设计模式是一套被反复使用、多数人知晓、经过分类编目、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被...
在JavaScript中实现发布订阅模式,通常涉及创建一个事件中心或者事件管理器,它负责管理和调度事件的发布与订阅。下面是一个简单的纯JavaScript实现: ```javascript function PubSub() { this.events = {}; } //...
在现代Web前端开发中,几乎所有的JavaScript框架和库都提供了观察者模式的实现,例如在Vue.js中,响应式系统就是基于发布者和订阅者模式构建的。通过使用观察者模式,开发者可以更灵活地管理组件或模块之间的通信和...
在JavaScript中实现发布/订阅模式,首先需要一个发布者对象,该对象包含以下几个关键部分: 1. **subscribers**:这是一个存储订阅者对象的数组,每个订阅者对应一个特定的事件类型。 2. **subscribe()**:订阅方法...