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 控制器,防止重复弹窗
配置中心 管理全局配置信息或运行环境信息
相关推荐
雪雪爱冲浪10 分钟前
JavaScript 网络爬虫教程(2026)
开发语言·javascript·爬虫
软件技术NINI18 分钟前
化妆品html+css+js 7页
javascript·css·html
要吃这碗饭27 分钟前
JavaScript 网络爬虫教程(2026)
开发语言·javascript·爬虫
czq_268671948728 分钟前
Python打卡第40天
开发语言·python
yangmu320330 分钟前
Unity 开发过程与底层原理
java·开发语言
不爱吃鱼的蔓热莓30 分钟前
Autosar之根据ARXML中报文信息生成SWC(二)
开发语言·python
lexiangqicheng33 分钟前
自定义表单跨端共用机制-PC设计APP渲染
java·前端·javascript
奈葵33 分钟前
Python语句
开发语言·python
沙漏无语37 分钟前
pnpm 安装@vue-office包的幽灵依赖问题解决
前端·javascript·vue.js
Jmyd012343 分钟前
VR全景线上展会制作流程技术解析:全景采集、点云重建与Web端渲染优化实战
前端·javascript·vr·三维数字化