首页 > 代码库 > JS模式之发布/订阅模式
JS模式之发布/订阅模式
有时在JS中需要定义特定的事件,这些事件可以传递自定义参数。此时可以采用发布/订阅模式。
发布/订阅模式简单实现如下:
<script type="text/javascript">var pubsub = {};(function($) { $.topics = {}; // 发布或广播事件 $.publish = function (topic, args) { if (!$.topics[topic]) return false; if ($.topics[topic] instanceof Array) { var topics = $.topics[topic]; for(var i = 0; i < topics.length; i++) topics[i](args); } return this; }; // 通过特定名称和回调函数订阅事件 $.subscribe = function (topic, func) { if (!$.topics[topic]) $.topics[topic] = []; // 对应topic下加入回调函数 $.topics[topic].push(func); return this; }; // 解绑取消订阅事件 $.unsubscribe = function (topic) { if (!$.topics[topic]) return false; delete($.topics[topic]); return this; }})(pubsub);// 注册confirm事件pubsub.subscribe("confirm", function() { alert("this is the confirm");});// 注册alert事件 并订阅该事件后取消该订阅pubsub.subscribe("alert", function(data) { alert("this is the alert " + data);}).publish("alert", "success").unsubscribe("alert");</script>
JS模式之发布/订阅模式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。