单例模式

  • A+
所属分类:Web前端
摘要

这个模式在 JavaScript 中被称为模块。最常见的实现模块模式的方法通常被称为模块暴露, 这里展示的是其变体。


单例模式

了解什么是模块

``` function CoolModule() {     var something = "cool";     var another = [1, 2, 3];     function doSomething() { console.log( something );     }     function doAnother() {     console.log( another.join( " ! " ) );     }     return {     doSomething: doSomething, doAnother: doAnother     };      }     var foo = CoolModule(); foo.doSomething(); // cool     foo.doAnother(); // 1 ! 2 ! 3 ``` 

这个模式在 JavaScript 中被称为模块。最常见的实现模块模式的方法通常被称为模块暴露, 这里展示的是其变体。

单例模式:当只需要一个实例时,可以对这个模式进行简单的 改进来实现单例模式。

``` var foo = (function CoolModule() { var something = "cool"; var another = [1, 2, 3]; function doSomething() { console.log( something ); } function doAnother() { console.log( another.join( " ! " ) ); } return { doSomething: doSomething, doAnother: doAnother }; })(); foo.doSomething(); // cool foo.doAnother(); // 1 ! 2 ! 3 ``` 
  • 利用自执行函数,立即调用这个函数并将返回值直接赋值给单例的模块实例标识符 foo。