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
相关推荐
IT_陈寒6 分钟前
Redis性能提升50%的7个关键优化策略,90%开发者都不知道第5点!
前端·人工智能·后端
Hilaku12 分钟前
深入URL和URLSearchParams:别再用正则表达式去折磨URL了
前端·javascript·代码规范
pubuzhixing17 分钟前
Canvas 的性能卓越,用它解决一个棘手问题
前端
weixin_4569042718 分钟前
Vue.jsmain.js/request.js/user.js/store/index.js Vuex状态管理项目核心模块深度解析
前端·javascript·vue.js
伍哥的传说21 分钟前
Vue 3.6 Alien Signals:让响应式性能飞跃式提升
前端·javascript·vue.js·vue性能优化·alien-signals·细粒度更新·vue 3.6新特性
永日4567026 分钟前
学习日记-HTML-day51-9.9
前端·学习·html
狗头大军之江苏分军42 分钟前
iPhone 17 vs iPhone 17 Pro:到底差在哪?买前别被忽悠了
前端
小林coding42 分钟前
再也不怕面试了!程序员 AI 面试练习神器终于上线了
前端·后端·面试
宁静致远202144 分钟前
【C++设计模式】第三篇:观察者模式(别名:发布-订阅模式、模型-视图模式、源-监听器模式)
c++·观察者模式·设计模式
文心快码BaiduComate1 小时前
WAVE SUMMIT深度学习开发者大会2025举行 文心大模型X1.1发布
前端·后端·程序员