js发布的订阅模式的作用有哪些
发表于:2025-11-09 作者:千家信息网编辑
千家信息网最后更新 2025年11月09日,这篇文章将为大家详细讲解有关js发布的订阅模式的作用有哪些,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1、发布订阅模式可以广泛应用于异步编程,这是一
千家信息网最后更新 2025年11月09日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安全错误
数据库的锁怎样保障安全
江苏震宁互联网科技有限公司
禄劝住宿软件开发
网络安全法和基本法区别
玖玖软件开发公司
河南省正数网络技术有限公司
计算机四级网络技术教程pdf
01565数据库
计算机网络技术专业对口行业
数据库同步系统是什么软件
上海网络技术咨询管理系统
爱微知著网络技术公司
商业地产 互联网科技
百行征信数据库累计收录人
工业还原自适应服务器
软件开发常用的平台
上海巨型软件开发怎么样
奥迪a4车载网络技术
万方数据库中有哪些检索技术
存储服务器配置
网络安全风险评估和检查情况
python金融小软件开发
政府计算机网络安全员
网络安全提现的问题
我的世界服务器热管理
软件开发实习有周末的吗
工业园区服务器质量保证
工业还原自适应服务器
服务器保存不了bios怎么回事
五舟服务器生产地址
艾氏兄弟网络技术有限公司