首页 > 其他分享 >js 单例模式

js 单例模式

时间:2023-12-28 12:12:26浏览次数:27  
标签:getInstance H5SSE 模式 js instance 实例 static 单例

import { EventEmitter } from 'eventemitter3';

class H5SSE extends EventEmitter {
    static instance: H5SSE;
    
    static getInstance() {
        if (!H5SSE.instance) {
            H5SSE.instance = new H5SSE();
        }
        return H5SSE.instance;
    }
}

export default H5SSE.getInstance();

上述代码是一个 TypeScript 类的定义,其中使用了单例模式来创建实例。让我们逐行解析代码:

class H5SSE extends EventEmitter {

这行代码定义了一个名为 H5SSE 的类,该类继承自 EventEmitter 类。

    static instance: H5SSE;

这行代码定义了一个静态属性 instance,用于保存 H5SSE 的单例实例。

    static getInstance() {
        if (!H5SSE.instance) {
            H5SSE.instance = new H5SSE();
        }
        return H5SSE.instance;
    }

这是一个静态方法 getInstance(),用于获取 H5SSE 的单例实例。在方法内部,通过检查 H5SSE.instance 是否已存在实例,如果不存在则创建一个新的实例,并将其赋值给 H5SSE.instance。最后,返回 H5SSE.instance

export default H5SSE.getInstance();

这行代码导出了通过调用 H5SSE.getInstance() 获取的 H5SSE 单例实例作为默认导出。

综上所述,通过 H5SSE.getInstance() 方法获取的 H5SSE 实例将是全局唯一的,即单例模式。这样可以确保在整个应用程序中只有一个 H5SSE 实例被创建和使用。

标签:getInstance,H5SSE,模式,js,instance,实例,static,单例
From: https://www.cnblogs.com/yoona-lin/p/17932419.html

相关文章

  • .Net 几种常用设计模式【工厂、单例】
    抽象工厂模式//抽象产品publicinterfaceIProduct{voidOperation();}//具体产品ApublicclassProductA:IProduct{publicvoidOperation(){Console.WriteLine("ProductAOperation");}}//具体产品BpublicclassProductB:IPr......
  • YOLOv5:将模型预测结果保存为Labelme格式的Json文件
    YOLOv5:将模型预测结果保存为Labelme格式的Json文件前言前提条件相关介绍实验环境YOLOv5:将模型预测结果保存为Labelme格式的Json文件代码实现进行预测输出结果前言由于本人水平有限,难免出现错漏,敬请批评改正。更多精彩内容,可点击进入Python日常小操作专栏、OpenCV-Python小应用专......
  • SpringBoot+JaywayJsonPath实现Json数据的DSL(按照指定节点表达式解析json获取指定数
    场景若依前后端分离版手把手教你本地搭建环境并运行项目:若依前后端分离版手把手教你本地搭建环境并运行项目_前后端分离项目本地运行在上面搭建SpringBoot项目的基础上,并且在项目中引入fastjson、hutool等所需依赖后。JaywayJsonPath:GitHub-json-path/JsonPath:JavaJsonPathi......
  • 享元设计模式 和 享元设计模式在 FastDateFormat类中的应用
    1.概述享元设计模式(FlyweightPattern):通过尽量共享实例来避免new出实例。享元设计模式中有两个角色,一是要共享的实例,二是获取或创建这些共享实例的工厂。举一个例子:例如String常量池,大家创建的String常量,创建String的时候,先去常量池中看一下,有该String常量直接使用该常量,如果没......
  • Sublime Text Html CSS JS 代码整理美化插件
    原文地址:SublimeTextHtmlCSSJS代码整理美化插件使用代码编辑编辑器的好处就是有很多功能可以用,特别是一个就是代码整理优化。在编写代码时,我们经常会遇到代码混乱、缩进不正确或格式不统一等问题。这些问题可能会导致代码难以阅读、维护和调试,降低开发效率。那么我这里说一......
  • device-autojs
    //设备屏幕分辨率宽度。varw=device.width;//设备屏幕分辨率高度。varh=device.height;//修订版本号,或者诸如"M4-rc20"的标识。var修订版本号=device.buildId;//设备的主板(?)型号。var设备的主板型号=device.broad;//与产品或硬件相关的厂商品牌,如"Xiaomi","Huawei......
  • ts构建编译选项-tsconfig.json
    概述如果一个目录下存在一个tsconfig.json文件,那么它意味着这个目录是TypeScript项目的根目录。tsconfig.json文件中指定了用来编译这个项目的根文件和编译选项。一个项目可以通过以下方式之一来编译:使用tsconfig.json不带任何输入文件的情况下调用tsc,编译器会从当前目录开......
  • GOF23--23种设计模式(三)
    一.桥接模式Java中的桥接模式(BridgePattern)是一种结构性设计模式,它将抽象部分和实现部分分离,使它们可以独立变化,同时通过桥接对象将它们连接起来。这种模式将抽象与其实现解耦,使得抽象和实现可以独立变化。抽象和它的实现通过一个桥接类进行连接,使得它们可以各自独立地变化。......
  • 单例模式
    5单例模式单例模式是保证实例唯一性的重要手段。单例模式首先通过将类的实例化方法私有化来防止程序通过其他方式创建该类的实例,然后通过提供一个全局唯一获取该类实例的方法帮助用户获取类的实例,用户只需也只能通过调用该方法获取类的实例。单例模式的常见写法有懒汉模式(线程......
  • 代理模式
    6代理模式⭐️介绍在代理模式下有两种角色,一种是被代理者,一种是代理(Proxy)。被代理者需要做一项工作时,不用自己做,而是交给代理做。使用代理对象来代替对真实对象(realobject)的访问,这样就可以在不修改原目标对象的前提下,提供额外的功能操作,扩展目标对象的功能。代理模式的主要作用是......