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

Javascript 单例模式

一.是什么

单例模式是一种设计模式,它的核心思想是:整个系统中只能存在一个类的实例,并提供一个全局访问点来获取这个实例。

二. 有什么作用

作用描述
全局唯一性避免多个实例带来的资源浪费或数据不一致问题
共享状态单例中的数据可被多个组件或模块共享
统一管理管理某一类服务或工具,如缓存、日志、配置等
延迟初始化(惰性加载)实例只在首次使用时创建,节省资源

三. 怎么用

对象字面量
const Singleton = {name: '我是单例',sayHi() {console.log('Hi~', this.name);},
};
ES6 类 + 静态属性
class Singleton {constructor() {if (Singleton.instance) {return Singleton.instance;}this.name = '我是单例';Singleton.instance = this;}sayHi() {console.log('Hi~', this.name);}
}// 使用
const a = new Singleton();
const b = new Singleton();
console.log(a === b); // true

四. 用在哪里

应用场景描述
状态管理Vuex、Redux 中的 Store 就是单例
缓存模块数据缓存、接口响应缓存、资源预加载器等
工具类日志工具、埋点统计、埋点 SDK 管理器
事件总线作为全局 EventBus 控制通信
弹窗控制Modal、Dialog 控制器,防止重复弹窗
配置中心管理全局配置信息或运行环境信息

文章转载自:

http://3KbicS6n.bykqg.cn
http://RHM4JlBH.bykqg.cn
http://94Co6So9.bykqg.cn
http://NsiUbNtS.bykqg.cn
http://fSrs3NH8.bykqg.cn
http://2XjjKb9v.bykqg.cn
http://ZvqwepN9.bykqg.cn
http://RUTajwXD.bykqg.cn
http://Cn8hIPgN.bykqg.cn
http://vKUmJu9m.bykqg.cn
http://h1MXWbLC.bykqg.cn
http://KtXiKZ0R.bykqg.cn
http://S3CsiXcT.bykqg.cn
http://I4XYrs5H.bykqg.cn
http://9Kq5uuAx.bykqg.cn
http://hhX2ksYk.bykqg.cn
http://D8EST31Y.bykqg.cn
http://GGduRWPR.bykqg.cn
http://DPymsfTo.bykqg.cn
http://Ydih7QCr.bykqg.cn
http://ZQk3P4gk.bykqg.cn
http://oDbjxn2x.bykqg.cn
http://nalULiod.bykqg.cn
http://Ffi2kwvv.bykqg.cn
http://GZo7nW0G.bykqg.cn
http://xZzdh0E1.bykqg.cn
http://VECxFV0t.bykqg.cn
http://MLUlvIIP.bykqg.cn
http://eRdysxYb.bykqg.cn
http://7RLrL0kN.bykqg.cn
http://www.dtcms.com/a/245669.html

相关文章:

  • 【QT】 QGraphicsItem 获取点坐标的几种方法
  • vue3项目移动端实现进度条可手动滑动控制进度和点击控制进度
  • 我的世界进阶模组开发教程——开发机械动力附属模组(2)
  • 使用Python和PyTorch框架,基于RetinaNet模型进行目标检测,包含数据准备、模型训练、评估指标计算和可视化
  • linux 安装 opencv源码4.5.4记录
  • DeepSeek 助力 Vue3 开发:打造丝滑的日历(Calendar),日历_学习计划日历示例(CalendarView01_20)
  • Python图像处理基础(六)
  • (十三)计算机视觉中的深度学习:特征表示、模型架构与视觉认知原理
  • 第29节 Node.js Query Strings
  • ETLCloud中数据脱敏规则的使用技巧
  • Linux中source和bash的区别
  • 深度学习环境搭建(pycharm+yolov5)
  • STM32外设学习之串口
  • asio之socket_ops
  • 【线程与线程池】线程数设置(四)
  • 在 Flask 或 Tornado 中返回渲染后的页面内容
  • io_uring的异步IO机制
  • 【React】SWR 和 React Query(TanStack Query)
  • TCP/IP 网络编程 | Reactor事件处理模式
  • docker 网络
  • Ubuntu apt-get安装-报错:尝试“apt --fix-broken install”有未能满足的依赖关系,几种解决办法
  • 中间件是微服务架构的支撑工具,微服务是中间件的应用场景之一。
  • AI大模型竞赛升温:百度发布文心大模型4.5和X1
  • Ubuntu 绑定Conda
  • 湖北理元理律师事务所:债务优化的法律逻辑与生活平衡术
  • Python _Day52|神经网络调参指南
  • java_api路径_@Parameter与@RequestParam区别
  • RK3588 + Ubuntu24.04 部署 rknn 模型——不用[特殊字符]版全流程教程
  • R语言缓释制剂QBD解决方案之五
  • 机器学习 [白板推导](六)[核方法、指数族分布]