国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

js單例模式的兩種方案

2024-05-06 15:53:21
字體:
來源:轉載
供稿:網友
這篇文章介紹了js單例模式的兩種方案,有需要的朋友可以參考一下

方案一:利用閉包的兩個作用,可以變通地讀到內部的變量,二是可以讓這些變量始終在內存中。

復制代碼 代碼如下:


//方案一
    var SingletonTester = (function () {
        //單例方法
        function Singleton(args) {
            var args = args || {};
            this.name = 'SingletonTester'; //方法對外的屬性,另外一種方式就是返回對象
            this.pointX = args.pointX || 6;
            this.pointY = args.pointY || 10;
        }

        //單例實例
        var instance;

        //返回對象
        return {
            name: 'SingletonTester',

            getInstance: function (args) {
                if (instance === undefined) {
                    instance = new Singleton(args);
                }
                return instance;
            }
        };
    })(); //直接執行該方法

    //測試
    var test = SingletonTester.getInstance({ pointX: 5 });
    console.log(test.pointX);

方案二: 

復制代碼 代碼如下:


//方案二
  function Universe() {
      // 判斷是否存在實例
      if (typeof Universe.instance === 'object') {
          return Universe.instance;
      }

      // 其它內容
      this.start_time = 0;
      this.bang = "Big";

      // 緩存
      Universe.instance = this;

      // 隱式返回this
  }

  // 測試
  var uni = new Universe();
  var uni2 = new Universe();
  console.log(uni === uni2); // true

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 兰州市| 萨迦县| 镇江市| 天等县| 安平县| 牡丹江市| 平谷区| 阿拉善右旗| 绥德县| 宁德市| 基隆市| 常熟市| 洛宁县| 南投县| 沙雅县| 交城县| 阳泉市| 兰州市| 会昌县| 新绛县| 特克斯县| 延安市| 闻喜县| 青神县| 罗山县| 蓝田县| 铁岭市| 四子王旗| 利川市| 通山县| 旺苍县| 天津市| 西吉县| 榆中县| 武宁县| 昌宁县| 磴口县| 德庆县| 东乡族自治县| 米泉市| 旌德县|