1. 程式人生 > >javascript設計模式-單例模式

javascript設計模式-單例模式

空間 spa 靜態變量 通過 script 無法 單例 onf 訪問

單例模式,是創建型設計模式的一種,又被稱為單體模式,是只允許實例化一次的對象類。有時也用來規劃一個命名空間。

 1 var Util = {
 2     getName: function () {
 3         console.log(‘wp‘)
 4     },
 5     getAge: function () {
 6         console.log(25)
 7     },
 8     getAll: function () {
 9         this.getName();
10         this.getAge();
11     }
12 }
13 Wang.getAll()

除了可以用來定義命名空間外,還可以管理代碼庫的各個模塊。

例:

 1 var Util = {
 2     Tool: {
 3         tool1: function () {
 4             ...
 5         },
 6         too2: function () {
 7             ...
 8         }
 9     },
10     Ajax: {
11         get: function () {
12             ...
13         },
14         post: function
() { 15 ... 16 } 17 }, 18 Animate: { 19 move: function () { 20 ... 21 }, 22 rotate: function () { 23 ... 24 } 25 } 26 } 27 Util.Tool.tool1();

例外,使用單例模式,還可以設置無法修改的靜態變量

var Conf = (function () {
    var conf = {
        CONF_A: 
100, CONF_B: 200, CONF_C: 300 } return { get: function (name) { return conf[name] ? conf[name] : null } } })(); var conf_a = Conf.get(‘CONF_A‘); console.log(conf_a); // 100

說明:因為將靜態變量定義在函數對象裏,而函數內部只提供了get方法,因此只能在外部通過特權方法訪問到這些靜態變量,但是無法修改這些靜態變量

javascript設計模式-單例模式