js发布的订阅模式的作用有哪些
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章将为大家详细讲解有关js发布的订阅模式的作用有哪些,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1、发布订阅模式可以广泛应用于异步编程,这是一
千家信息网最后更新 2026年11月02日js发布的订阅模式的作用有哪些
这篇文章将为大家详细讲解有关js发布的订阅模式的作用有哪些,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
1、发布订阅模式可以广泛应用于异步编程,这是一种取代回调函数的方案。
2、发布订阅模式可以取代对象之间硬编码的通知机制,一个对象不再需要明确调用另一个对象的接口。
实例
// 由于这些成员对于任何发布者对象都是通用的,故将它们作为独立对象的一个部分来实现是很有意义的。那样我们可将其复制到任何对象中,并将任意给定对象变成一个发布者。// 如下实现一个通用发布者,定义发布者对象……let publisher = { subscribers: { any: [] }, subscribe: function (fn, type = `any`) { if (typeof this.subscribers[type] === `undefined`) { this.subscribers[type] = []; } this.subscribers[type].push(fn); }, unSubscribe: function (fn, type = `any`) { let newSubscribers = []; this.subscribers[type].forEach((item, i) => { if (item !== fn) { newSubscribers.push(fn); } }); this.subscribers[type] = newSubscribers; }, publish: function (args, type = `any`) { this.subscribers[type].forEach((item, i) => { item(args); }); }}; // 定义一个函数makePublisher(),它接受一个对象作为参数,通过把上述通用发布者的方法复制到该对象中,从而将其转换为一个发布者function makePublisher(obj) { for (let i in publisher) { if (publisher.hasOwnProperty(i) && typeof publisher[i] === `function`) { obj[i] = publisher[i]; } } obj.subscribers = { any: [] };} // 实现paper对象var paper = { daily: function () { this.publish(`big news today!`); }, monthly: function () { this.publish(`interesting analysis`, `monthly`); }}; // 将paper构造成一个发布者makePublisher(paper); // 看看订阅对象joe,该对象有两个方法:var joe = { drinkCoffee: function (paper) { console.log(`Just read ` + paper); }, sundayPreNap: function (monthly) { console.log(`About to fall asleep reading this ` + monthly); }}; // paper注册joe(即joe向paper订阅)paper.subscribe(joe.drinkCoffee);paper.subscribe(joe.sundayPreNap, `monthly`); // 即joe为默认"any"事件提供了一个可被调用的方法,而另一个可被调用的方法则用于当"monthly"类型的事件发生时的情况。现在让我们来触发一些事件:paper.daily(); // Just read big news todaypaper.daily(); // Just read big news todaypaper.monthly(); // About to fall asleep reading this interesting analysispaper.monthly(); // About to fall asleep reading this interesting analysispaper.monthly(); // About to fall asleep reading this interesting analysis关于js发布的订阅模式的作用有哪些就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
对象
发布者
订阅
模式
方法
事件
作用
内容
函数
文章
更多
知识
篇文章
不错
两个
之间
参数
实例
情况
成员
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
咖啡
中智农互联网科技
南京欣网互联网络科技有限公司
北京路客互联网科技有限公司
互联网科技公司官网
互联网科技的未来发展
四川狮子座互联网科技
科技赋能互联网健康
互联网科技产品
昭通云南众福互联网科技有限公司
茂名市互联网科技产业园
栖莱科技互联网股份有限公司
阿大互联网科技有限公司
深圳育鹏互联网科技有限公司招聘
科技互联网海报
智帮互联网科技公司最近动向
互联网领先科技宣传片
上海创道互联网络科技有限公司
国产互联网科技公司
广州全民伙伴互联网科技有限公司
互联网科技公司的优势
互联网电商科技
新浪科技互联网
老年人脱离互联网科技的作文
呼和浩特新华互联网科技学院
996高科技互联网公司
天津腾达互联网科技有限公司
互联网科技企业商标注意事项
六子台科技互联网展会
前海云享互联网科技