總結(jié)
惰性函數(shù)定義模式讓我可以編寫一些緊湊、健壯、高效的代碼。用到這個模式的每一次,我都會抽空贊嘆JavaScript的函數(shù)式編程能力。
JavaScript同時支持函數(shù)式和面向?qū)ο蟊愠。市面上有很多重點著墨于面向?qū)ο笤O(shè)計模式的書都可以應用到JavaScript編程中。不過卻沒有多少書涉及函數(shù)式設(shè)計模式的例子。對于JavaScript社區(qū)來說,還需要很長時間來積累良好的函數(shù)式模式。
更新:
這個模式雖然有趣,但由于大量使用閉包,可能會由于內(nèi)存管理的不善而導致性能問題。來自 FCKeditor 的FredCK改進了getScrollY,既使用了這種模式,也避免了閉包:
var getScrollY = function() {
if (typeof window.pageYOffset == 'number') return (getScrollY = getScrollY.case1)();
var compatMode = document.compatMode; var documentElement = document.documentElement;
if ((typeof compatMode == 'string') && (compatMode.indexOf('CSS') >= 0) && (documentElement) && (typeof documentElement.scrollTop == 'number')) return (getScrollY = getScrollY.case2)();
var body = document.body ; if ((body) && (typeof body.scrollTop == 'number')) return (getScrollY = getScrollY.case3)();
return (getScrollY = getScrollY.case4)(); };
getScrollY.case1 = function() { return window.pageYOffset; };
getScrollY.case2 = function() { return documentElement.scrollTop; };
getScrollY.case3 = function() { return body.scrollTop; };
getScrollY.case4 = function() { return NaN; };
原文:Lazy Function Definition Pattern.
本文鏈接:http://m.95time.cn/tech/web/2007/4920.asp
出處:Realazy
責任編輯:moby
上一頁 惰性函數(shù)定義模式 [2] 下一頁
◎進入論壇網(wǎng)頁制作、WEB標準化版塊參加討論,我還想發(fā)表評論。
|