1. 程式人生 > >JS單例模式

JS單例模式

// 遊戲管理物件,單例類 var GameManager = (function () {     function _GameManager() {         // 敵人[波組]         this.groupVector = [];         // 敵人[陣列]         this.enemyVector = [];         // 子彈[陣列]         this.bulletVector = [];         // 移動點集合[陣列]         this.pointVector = [];         // 當前[背景]         this.currBgName = "";         // 當前[地圖]         this.currMapName = "";         // 當前[金錢]         this.money = 0;         // 當前[關卡]         this.currLevel = 0;         // 當前[血量]         this.currHp = 10;         // 多少波敵人         this.groupNum = 0;         // 當前Level plist檔案         this.currLevelFile = "";         // 下一Level plist檔案         this.nextLevelFile = "";         // 是否新增完畢         this.isAddFinished = false;         this.clear = function(){             this.groupVector = [];             this.enemyVector = [];             this.bulletVector = [];             this.pointVector = [];         };         // ==============[getter && setter]==============         this.getGroupVector = function(){             return this.groupVector;         };         this.setGroupVector = function(groupVector){             this.groupVector = groupVector;         };         this.getEnemyVector = function(){             return this.enemyVector;         };         this.setEnemyVector = function(enemyVector){             this.enemyVector = enemyVector;         };         this.getBulletVector = function(){             return this.bulletVector;         };         this.setBulletVector = function(bulletVector){             this.bulletVector = bulletVector;         };         this.getPointVector = function(){             return this.pointVector;         };         this.setPointVector = function(pointVector){             this.pointVector = pointVector;         };         this.getCurrBgName = function(){             return this.currBgName;         };         this.setCurrBgName = function(currBgName){             this.currBgName = currBgName;         };         this.getCurrMapName = function(){             return this.currMapName;         };         this.setCurrMapName = function(currMapName){             this.currMapName = currMapName;         };         this.getMoney = function(){             return this.money;         };         this.setMoney = function(money){             this.money = money;         };         this.getCurrHp = function(){             return this.currHp;         };         this.setCurrHp = function(hp){             this.currHp = hp;         };         this.getGroupNum = function(){             return this.groupNum;         };         this.setGroupNum = function(groupNum){             this.groupNum = groupNum;         };         this.getCurrLevelFile = function(){             return this.currLevelFile;         };         this.setCurrLevelFile = function(currLevelFile){             this.currLevelFile = currLevelFile;         };         this.getNextLevelFile = function(){             return this.nextLevelFile;         };         this.setNextLevelFile = function(nextLevelFile){             this.nextLevelFile = nextLevelFile;         };         this.getIsAddFinished = function(){             return this.isAddFinished;         };         this.setIsAddFinished = function(isAddFinished){             this.isAddFinished = isAddFinished;         };         this.getCurrLevel = function(){             return this.currLevel;         };         this.setCurrLevel = function(level){             this.currLevel = level;         };     }     //例項容器     var instance;     //單例     var _static = {         name: 'GameManager',         getInstance: function () {             if (instance === undefined) {                 instance = new _GameManager();             }             return instance;         }     };     return _static; })();

相關推薦

JS模式

// 遊戲管理物件,單例類 var GameManager = (function () {     function _GameManager() {         // 敵人[波組]         this.groupVector = [];         // 敵人[陣列]    

js模式——建立彈窗

一、瞭解單例模式    單例模式的定義:保證一個類僅有一個例項,並提供一個訪問他的全域性訪問點    單例模式的核心:是確保只有一個例項,並提供全域性訪問二、javascript中的單例模式    在js中,我們經常會把全域性變數當做單例模式來使用,例如:        va

js模式的es5實現和es6實現,以及通用惰性實現

單例模式 es5實現 es6實現 單例模式 一開始不建立例項物件,當第一次使用時才建立 用一個變數標誌當前是否已經為某個類建立過物件,如果已建立則在下次獲取時返回之前建立的例項

js模式

new message charset 業務邏輯 包含 render bin init () 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta ch

理解js設計模式模式

單例 false single 這樣的 字面量 不可靠 urn 如果 == 單例模式的定義:只提供唯一的一個實例來讓你訪問 js中單例是天然存在的: var a1={ hello:‘js‘ } var a2={ hello:‘js‘ } cons

[js高手之路]設計模式系列課程-模式實現模態框

ges 點擊 eat abs select nbsp str osi 控制 什麽是單例呢? 單,就是一個的意思。例:就是實例化出來的對象,那合在一起就是保證一個構造函數只能new出一個實例,為什麽要學習單例模式呢?或者說單例模式有哪些常見的應用場景.它的使用還是很廣泛,比如

js設計模式模式

想要 判斷 mage blog nbsp mes new 1-1 單例 1 var xiaowang = (function(argument){ 2 var xiaowangjia = function(message){

[轉]js設計模式-模式

bsp append 線程池 get 有一個 layer 代理 分享圖片 獨立  單例模式是指保證一個類僅有一個實例,並提供一個訪問它的全局訪問點。 單例模式是一種常用的模式,有一些對象往往只需要一個,比如線程池、全局緩存、瀏覽器中的window對象等。在javaScrip

js模式

getmenu pro iter urn null 實現 ole prot 賦值 單例模式是指一個類,只有一個實例。實現的思路是,創建實例時候加判斷,如果有實例則返回,如果沒有就new一個,並返回。 第一步: 創建類。 function Waiter(id, name,

js設計模式 第八章 模式

單例模式:又稱單體模式,是隻允許例項化一次的物件類。有時也用一個物件來規劃一個名稱空間,井井有條地管理物件上的屬性和方法 。 名稱空間的管理員 防止變數或方法重複 var ming={ g:function(id){ return document.getElem

Node.js中Es6中的模式

1.一般情況下,我們是每次呼叫一個建構函式,建構函式及相關被呼叫的函式都會執行一次。及呼叫N次,建構函式及相關函式都會執行N次,這樣就會對伺服器和底層資料庫的效能造成浪費。 class Db { //建構函式方法 constructor(){

JS設計模式模式

單例模式就如其名一樣,一個建構函式在構造出一個物件後,之後再使用這個建構函式構造物件時,不會是新的物件,依舊是上一次的物件,通俗點說,單例模式實現的是一個建構函式只能創造一個新的物件。很不解,為什麼要這麼做?這個就像什麼呢,舉個不恰當的例子,就像一家汽車製造廠,在製造完一輛車

JS設計模式(二)--- 模式

我們繼續說小明那個例子 上次說到小明買回了所有的東西,書院的先生一看賬單:¥4386 雖然覺得這錢花的有點多,但這一次的採購還是要交給小明去做 先生說:小明啊,我給你一個賬單,你每買一件商品都要在這個

js中使用require實現模式

1) 例子1  待使用的庫 var obj = { num: 0 } console.log("require lib"); module.exports = obj;  利用require只加載一次的單例特性使用 var lib = require

js實現模式

//singletone.js class Singleton { static GetSingleton( fn ) { var instance; return function () { if ( !instance ) { instance =

JS 設計模式 】用模式(Singleton)來封裝對資料的增刪除改查

單例模式單例模式的核心結構中只包含一個被稱為單例的特殊類。通過單例模式可以保證系統中一個類只有一個例項單例模式最初的定義出現於《設計模式》(艾迪生維斯理, 1994):“保證一個類僅有一個例項,並提供一個訪問它的全域性訪問點。”單例模式定義:“一個類有且僅有一個例項,並且自行

js閉包實現私有變數和模式

外界只能通過new f().getPrivateAttr()來訪問變數 function f(){ var privateAttr =10; this.getPrivateAt

js設計模式-模式

調用構造 name 單例模式 tails 設計 它的 簡單 sin ons 定義: 顧名思義,單例就是單一的意思,單例模式的定義是:保證一個類僅有一個一個實例,並提供一個訪問它的全局訪問點。 思路: 新建對象時判斷全局是否有該對象,如果有,就返回該對象,沒有就創建一個新對象

模式

實現 程序 先來 null effective 如果 ava 不同的 aps 單例模式:確保某一個類只有一個實例,而且自行實例化並向整個系統提供這個實例。 優點: 1、省略創建對象所花費的時間減少系統開銷,尤其是重量級對象。 2、減少對象的創建,減輕GC壓力。 3、設置全局

GOF23—模式(2)

應該 一個 img bsp 漏洞 資源 nbsp 創建 就會 本文介紹單例模式(不包含枚舉單例模式)漏洞問題以及如何防止漏洞   1.反射可以破解單例模式,例子如下:       此時,我們運行Client類,發現s1和s2是一個對象,但s3和s4是不同的對象。 那麽如何防