性能優化之惰性函數

咱們正常封裝一個兼容的綁定事件函數會這樣寫:dom

function addEvent(dom, type, handle) {
    if (dom.addEventListener) {
        dom.addEventListener(type, handle, false)
    } else {
        dom.attachEvent('on' + type, handle)
    }
}

看起來沒什麼問題, 可是, 既然咱們封裝了這樣一個函數, 那咱們確定會頻繁調用它,函數

每次調用都走一次if 判斷   , 性能就會下降,  性能

那咱們就要想一個辦法  , 只在第一次調用時判斷一次, 後面再次調用就不用判斷了,  spa

這就是惰性函數的用法:code

function addEvent(dom, type, handle) {
    if (dom.addEventListener) {
        dom.addEventListener(type, handle, false);
        addEvent = function (dom, type, handle) {
            dom.addEventListener(type, handle, false);
        }
    } else {
        dom.attachEvent('on' + type, handle);
        addEvent = function (dom, type, handle) {
            dom.attachEvent('on' + type, handle);
        }
    }
}

直接在函數內部重寫這個函數。blog

相關文章
相關標籤/搜索