# 单例模式

单例模式(Singleton):又被称为单体模式,是只允许实例化一次的对象类。有时我们也用一个对象来规划一个命名空间,井井有条地管理对象上的属性与方法

假如, 我们写一个自己的小型方法库的时候也可以用单例模式来规范我们自己代码库的各个模块

var A = {
    Util : {
        util_method1 : function(){},
        util_method2 : function(){}
        // ...
    },
    Tool : {
        tool_method1 : function(){},
        tool_method2 : function(){}
        // ...
    },
    Ajax : {
        get : function(){},
        post : function(){}
        // ...
    },
    others : {
        // ...
    }
    // ...
}

那么我们想使用公共模块、工具模块、ajax模块方法时就像下面这样:

A.Util.util_method2();
A.Tool.tool_method1();
A.Ajax.get();

# 静态变量

通过把变量放在一个函数内部, 只提供访问方法, 不提供修改方法, 来实现定义静态变量. 为实现创建后就能使用这一需求,我们就需要让创建的函数执行一次,此时我们创建的对象内保存静态变量通过取值器访问,最后将这个对象作为一个单例放在全局空间里作为静态变量单例对象供他人使用。”

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

var count = Conf.get('COUNT')
console.log(count);           //1000
上次更新: 7/4/2020, 4:14:54 AM