javascript設計模式-單例模式
阿新 • • 發佈:2017-05-26
空間 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設計模式-單例模式