性能优化之惰性函数

咱们正常封装一个兼容的绑定事件函数会这样写: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

相关文章
相关标签/搜索