欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

惰性函數(shù)定義模式 使用方法第3/3頁

 更新時間:2007年09月20日 19:55:43   作者:  

總結(jié)

惰性函數(shù)定義模式讓我可以編寫一些緊湊、健壯、高效的代碼。用到這個模式的每一次,我都會抽空贊嘆JavaScript的函數(shù)式編程能力。

JavaScript同時支持函數(shù)式和面向?qū)ο蟊愠?。市面上有很多重點著墨于面向?qū)ο笤O(shè)計模式的書都可以應(yīng)用到JavaScript編程中。不過卻沒有多少書涉及函數(shù)式設(shè)計模式的例子。對于JavaScript社區(qū)來說,還需要很長時間來積累良好的函數(shù)式模式。

更新:

這個模式雖然有趣,但由于大量使用閉包,可能會由于內(nèi)存管理的不善而導(dǎo)致性能問題。來自 FCKeditor 的FredCK改進了getScrollY,既使用了這種模式,也避免了閉包:
復(fù)制代碼 代碼如下:

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; 
}; 

相關(guān)文章

最新評論