当前位置: 首页 > news >正文

JS设计模式-模块模式

模块模式好像不是经典的设计模式,但不可避免的每种编程语言都加入了模块的概念。有时候可能用了模块模式但并不知道自己用的是模块模式。
虽然不是经典的设计模式,但是作为JS创建模块的一种模式也是经常被使用。这里对它做一下介绍

啥是模块

模块模式是一种创建型设计模式,它使用闭包来创建私有变量和方法,同时提供公共接口来访问。模块模式是JavaScript中最常用的模式之一,它提供了封装、私有性和组织代码的能力。

函数式模块

// 使用模块模式创建可复用的组合函数
const useCounter = (function() {// 私有变量let count = 0;let listeners = [];// 私有方法function notifyListeners() {listeners.forEach(listener => listener(count));}// 公共接口return {// 获取当前计数
    get count() {return count;},// 增加计数increment: function(value = 1) {count += value;notifyListeners();return count;},// 减少计数decrement: function(value = 1) {count -= value;notifyListeners();return count;},// 重置计数reset: function() {count = 0;notifyListeners();return count;},// 设置计数set: function(value) {count = value;notifyListeners();return count;},// 监听变化watch: function(callback) {listeners.push(callback);return function() {const index = listeners.indexOf(callback);if (index > -1) {listeners.splice(index, 1);}};}};
})();// 使用示例
const counter = useCounter;
console.log('初始计数:', counter.count);const unsubscribe = counter.watch((newCount) => {console.log('计数变化:', newCount);
});counter.increment(5);
counter.decrement(2);
counter.reset();unsubscribe(); // 取消监听

 

http://www.sczhlp.com/news/122482/

相关文章:

  • 关于天猫精灵喵控的初步研究
  • 利用Burpsuite实现抓取https流量
  • C++完全攻略:从新手到高手的编程进化之路 - 详解
  • 想通过网站卖自己做的东西郑州整站网站优化
  • 有没有做q版头像的网站婴贝儿网站建设
  • 购物网站制作多少钱wordpress万能
  • 网站一直维护意味着什么北京vi设计案例分析
  • 微信分销网站建设费用怎样使用仿站小工具做网站
  • 自学网站开发设计dw做网站的导航栏怎么做
  • 深入解析:敏捷开发-Scrum(下)
  • RTX4090双卡本地布署QwenImage模型并生成OpenAI API - yi
  • Visual Studio 报错:“9_自定义命令”名称在默认命名空间“9_自定义命令”中无效。请更正项目文件中的 RootNamespace 标记值。
  • 做导航网站赚钱吗动态背景设置网站
  • 手机网站域名解析修水县城乡建设局官方网站
  • 城市分站cms郑州企业建站系统模板
  • 网站开发合同模板下载网络规划设计师多少分
  • php网站多语言翻译怎么做网站服务器查询工具
  • 开发网站需要多少资金wordpress页面修改
  • 做网站怎么用国处服务器wordpress同学录
  • 展馆网站建设方案门户网站推广怎么做
  • 会议网站建设方案商城网站后台管理系统
  • 图解23:datetime和timestamp的区别
  • 手机老是下载一些做任务的网站班玛县网站建设公司
  • jsp网站开发 开题依据北京定制网站建设公司
  • 湛江网站开发哪家专业旅游区网站开发
  • 网站建设 贴吧wordpress 企业 模板 下载
  • 首页网站关键词优化教程戴尔公司网站建设成功的关键是什么
  • c网站开发视频教程西安专业网站建设价格
  • 深入解析:SQL语句优化的步骤详解
  • 在Java中识别泛型信息