1. <small id='JyzL9'></small><noframes id='JyzL9'>

    2. <i id='JyzL9'><tr id='JyzL9'><dt id='JyzL9'><q id='JyzL9'><span id='JyzL9'><b id='JyzL9'><form id='JyzL9'><ins id='JyzL9'></ins><ul id='JyzL9'></ul><sub id='JyzL9'></sub></form><legend id='JyzL9'></legend><bdo id='JyzL9'><pre id='JyzL9'><center id='JyzL9'></center></pre></bdo></b><th id='JyzL9'></th></span></q></dt></tr></i><div id='JyzL9'><tfoot id='JyzL9'></tfoot><dl id='JyzL9'><fieldset id='JyzL9'></fieldset></dl></div>
      • <bdo id='JyzL9'></bdo><ul id='JyzL9'></ul>

      <legend id='JyzL9'><style id='JyzL9'><dir id='JyzL9'><q id='JyzL9'></q></dir></style></legend>
      <tfoot id='JyzL9'></tfoot>

      JavaScript设计模式之单例模式实例

      时间:2023-12-09
      <i id='WK1ku'><tr id='WK1ku'><dt id='WK1ku'><q id='WK1ku'><span id='WK1ku'><b id='WK1ku'><form id='WK1ku'><ins id='WK1ku'></ins><ul id='WK1ku'></ul><sub id='WK1ku'></sub></form><legend id='WK1ku'></legend><bdo id='WK1ku'><pre id='WK1ku'><center id='WK1ku'></center></pre></bdo></b><th id='WK1ku'></th></span></q></dt></tr></i><div id='WK1ku'><tfoot id='WK1ku'></tfoot><dl id='WK1ku'><fieldset id='WK1ku'></fieldset></dl></div>

      <tfoot id='WK1ku'></tfoot>
        <bdo id='WK1ku'></bdo><ul id='WK1ku'></ul>
        <legend id='WK1ku'><style id='WK1ku'><dir id='WK1ku'><q id='WK1ku'></q></dir></style></legend>

            <small id='WK1ku'></small><noframes id='WK1ku'>

                  <tbody id='WK1ku'></tbody>
              1. JavaScript设计模式之单例模式实例

                什么是单例模式

                单例模式是一种创建型设计模式,用于确保一个类只有一个实例,并提供对该实例的全局访问点。

                在JavaScript中,单例模式可以通过类的静态属性或闭包来实现。下面我们会用两个例子来说明。

                静态属性实现

                在这个例子中,我们定义一个Singleton类,使用类的静态属性来实现单例模式。

                class Singleton {
                  static instance = null;
                
                  constructor() {
                    if (Singleton.instance) {
                      return Singleton.instance;
                    }
                    Singleton.instance = this;
                  }
                }
                

                上面的代码中,我们在Singleton类中声明了一个静态属性instance,初始值为null。在类的构造函数中,我们判断instance是否为null,如果不是,返回已有的实例;如果是,为instance赋值为this,并返回它。

                这样,我们就可以创建Singleton的实例,并确保只有一个实例存在。

                const s1 = new Singleton();
                const s2 = new Singleton();
                
                console.log(s1 === s2); // true
                

                上面的代码中,我们分别创建了两个Singleton的实例s1和s2,它们是同一个对象。

                闭包实现

                在这个例子中,我们使用闭包来实现单例模式。

                const Singleton = (() => {
                  let instance = null;
                
                  return class {
                    constructor() {
                      if (instance) {
                        return instance;
                      }
                      instance = this;
                    }
                  };
                })();
                

                上面的代码中,我们定义了一个IIFE(立即调用函数表达式),返回一个闭包,闭包包含一个instance变量和一个Singleton类。在Singleton类的构造函数中,我们判断instance是否为null,如果不是,返回已有的实例;如果是,为instance赋值为this,并返回它。

                这样,我们就可以创建Singleton的实例,并确保只有一个实例存在。

                const s1 = new Singleton();
                const s2 = new Singleton();
                
                console.log(s1 === s2); // true
                

                上面的代码中,我们分别创建了两个Singleton的实例s1和s2,它们是同一个对象。

                总结

                单例模式是一种创建型设计模式,用于确保一个类只有一个实例,并提供对该实例的全局访问点。在JavaScript中,单例模式可以通过类的静态属性或闭包来实现。

                以上是完整的JavaScript单例模式实现攻略,希望对你有所帮助。

                上一篇:谈谈JavaScript中的垃圾回收机制 下一篇:JavaScript自动内存管理与垃圾回收策略详细分析讲解

                相关文章

                • <bdo id='lDUUN'></bdo><ul id='lDUUN'></ul>
                <i id='lDUUN'><tr id='lDUUN'><dt id='lDUUN'><q id='lDUUN'><span id='lDUUN'><b id='lDUUN'><form id='lDUUN'><ins id='lDUUN'></ins><ul id='lDUUN'></ul><sub id='lDUUN'></sub></form><legend id='lDUUN'></legend><bdo id='lDUUN'><pre id='lDUUN'><center id='lDUUN'></center></pre></bdo></b><th id='lDUUN'></th></span></q></dt></tr></i><div id='lDUUN'><tfoot id='lDUUN'></tfoot><dl id='lDUUN'><fieldset id='lDUUN'></fieldset></dl></div>

                1. <tfoot id='lDUUN'></tfoot>
                2. <legend id='lDUUN'><style id='lDUUN'><dir id='lDUUN'><q id='lDUUN'></q></dir></style></legend>

                  1. <small id='lDUUN'></small><noframes id='lDUUN'>