JS-单例设计模式

设计模式:针对特定问题提出的简洁优化的解决方案

  • 构造函数或类仅仅只能实例化一次,得到一个实例对象
  • 比如:工具类
    • 在项目中使用工具类实例对象时,每一个实例对象的属性方法与功能作用都是一样的
    • 那么在项目中如果每次使用都需要重新实例化一个工具类对象,这样会造成内存浪费
      • 解决方案:工具类仅仅只实例化一次,得到一个实例对象,后续的每次使用则都直接使用该实例对象
        • 此时就可以使用单例设计模式来书写工具类
js 复制代码
// 利用闭包函数封装
let singleton = (function() {
    // 工具类
    class Utils { }
    let tool;
    return function () {
        // 每次使用都判断tool中是否已存在实例对象
        if (!tool) tool = new Utils();
        return tool;
    }
})();

let t1 = singleton();
let t2 = singleton();
console.log(t1 === t2); // true
相关推荐
旧雨散尘8 小时前
【react】react初学6-第一个react应用-待办事项
前端·react.js·前端框架
Tzarevich8 小时前
现代JavaScript字符串处理:从基础语法到模板字符串的深度演进与技术实践
javascript
岁月向前8 小时前
iOS基础问题整理
前端
陈随易8 小时前
改变世界的编程语言MoonBit:配置系统介绍(下)
前端·后端·程序员
jump6808 小时前
【react】 useReducer 集中式管理组件的状态
前端
许泽宇的技术分享8 小时前
把 CLI 搬上 Web:在内网打造“可二开”的 AI IDE,为什么这条路更现实?
前端·ide·人工智能
jump6808 小时前
【react】useState是什么,怎么用
前端
进击的夸父9 小时前
前端合并的表格排序功能
前端
低保和光头哪个先来9 小时前
如何实现弹窗的 双击关闭 & 拖动 & 图层优先级
前端·javascript·css·vue.js
必然秃头9 小时前
前端面试题总结
前端