js設計模式之惰性模式

2021-07-23 21:58:09 字數 566 閱讀 2393

寫過前端指令碼的經常會遇到繫結事件方法,但是要交相容ie瀏覽器和標準瀏覽器

例如:var jsobject = {};

jsobject.on = function (dom,type,fn)else if(dom.attachevent)else

}當每次執行jsobject 的on方法時,都會進行條件判斷,很繁瑣,當執行完一次後,再次執行時,怎麼樣能不需要判斷呢?當執行完一次判斷後我們可以重寫 on 方法可以避免重複判斷。

##方法1:利用閉包,載入立即執行##

jsobject.on = function (dom,type,fn)

}else if(dom.attachevent)

}else

}##方法2:是上述方法的延遲執行##

jsobject.on = function(dom,type,fn)

}else if(dom.attachevent)

}else

}jsobject.on(dom,type,fn);

各人更傾向於使用第二種方案,此方案只有在呼叫此方法時候才執行,當沒有使用此方法時,不占用瀏覽器記憶體

JS設計模式之組合模式

組合模式就是指在頁面表現中,通過一條指令而達到在多個物件中的複雜的遞迴行為,就是通過控制乙個物件,不過該物件複雜的遞迴下去又是很多複雜的物件,同時控制物件的行為。這樣簡化 可維護,複雜的物件的行為委託給乙個物件。組合模式確實能對於工作能起到簡化作用,組合物件實現某一操作時,通過遞迴,向下傳遞到所有的...

JS設計模式之工廠模式

介紹 工廠模式建立物件 視為工廠裡的產品 時無需指定建立物件的具體類,而是定義乙個用於建立物件的介面,這個介面由子類決定例項化哪乙個類。該模式使乙個類的例項化延遲到了子類。而子類可以重寫介面方法以便建立的時候指定自己的物件型別。這個模式十分有用,尤其是建立物件按流程賦值的時候,比如依賴於很多設定檔案...

js設計模式之命令模式

命令模式就是將建立模組的邏輯封裝在乙個物件裡,這個物件提供乙個引數化的請求介面,通過呼叫這個介面並傳遞一些引數實現呼叫命令物件內部中的方法。現在我們需要做乙個活動頁面,平鋪結構,比如每個預覽產品區域,有一行標題,標題下面是產品,只是數量和排列不同。模組實現模組 var viewcommand fun...