JS 设想形式 四(单例)

单例

单例是一个全局变量,运用单例能够更好的掌握全局变量,还能够应用分支手艺来封装浏览器之间的差别。网页中运用全局变量因为能够被重写风险很大。所以运用单例会更好的掌握全局变量。

懒加载

单例形式多半都是在加载剧本的时刻被建立出来。不过关于一些运用体式格局单例合适在用到的时刻被加载,所以须要一个能够懒加载的单例。

分支

是一种辨别运转环境差别的手艺,越发有用的针对加载的环境来定制代码,到达更好的灵活性。

代码

var os = require("os");
Singleton = (function () {
  var uniqueInstance; // 单例实体
  constructor = function () { // 单例初始化
    return function Singleton () {
      var count = 10;
      function initCount(){
        count = 10;
      }
      this.getCount = function () {
        return count;
      }
      this.setCount = function (value) {
        count = value;
      };
      this.init=function(){
        initCount();
      }
    };
  }();

  return {
    getInstance: function () {
      if (!uniqueInstance) { // 推断是不是初始化过
        uniqueInstance = new constructor();
      }
      return  (os.type()==='Windows_NT')?uniqueInstance:undefined;//单例分指使单例有更高的兼容性
    }
  }
})();
var S=Singleton .getInstance();//懒加载,在这里最先加载和建立实例。
console.log(S.count);
console.log(S.getCount());
S.setCount(550);
console.log(S.getCount());
//S.initCount();
S.init();
console.log(S.getCount());

总结

单例重要在于代码的整齐性,是全局变量变得可控,运用懒加载能够削减不必要的内存斲丧。分支进步不必环境的兼容性,只需推断一次环境而不必在每次运用都推断环境。

    原文作者:zchq88
    原文地址: https://segmentfault.com/a/1190000005085603
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞