JS单例模式

单例模式,常用来定义命名空间,联想jquery

模拟静态变量:

var conf = (function () {
            //私有变量
            var conf = {
                MAX_NUM: 100,
                MIN_NUM: 1,
                COUNT: 1000
            }
            //返回取值器对象
            return {
                //取值器方法
                get: function (name) {
                    return conf[name] ? conf[name] : null;
                }
            }
        })();
        var cf = conf.get('MAX_NUM');

惰性单例
单例对象延迟加载

var LazySingle = (function () {
            //单例实例引用 但是先不创建对象
            var _instance = null;
            //单例
            function Single() {
                //这里定义私有属性和方法
                return {
                    publicMethod: function () { },
                    publicProp:'1.0'
                }
            }

            //获取单例对象接口
            return function () {
                //判断是否需要创建单例对象
                if(!_instance){
                    _instance = new Single();
                }
                //返回单例
            }
        })();
原文地址:https://www.cnblogs.com/bsyblog/p/6778126.html