单例模式是Javascript中最常用的模式之一; 应用场景 使用单例模式可以用来创建命名空间以减少全局变量的数目,而全局变量也很容易被改写,不安全。描述性的命名空间也可以增强代码的说明性,便于理解; 把相关方法和属性组织到一个不会被多次实例化的单例中,更好的维护和调试代码; 惰性加载使对象被使用的时候才创建,减少不需要使用时消耗了不必要的内存或带宽; 分支技术可创建高效的方法,根据运行时的条件确定赋予单例变量的对象字面量,可以创建出为特定环境量身定制的方法,这种方法不会再每次调用时都再次浪费时间去检查运行环境。 缺点: 提供的是一种单点访问,导致模块间的强耦合,不利于单元测试。单例最好还是留给定义命名空间和实现分支方法这些用途