欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

性能优化之惰性函数

程序员文章站 2022-03-20 21:04:52
我们正常封装一个兼容的绑定事件函数会这样写: 看起来没什么问题, 但是, 既然我们封装了这样一个函数, 那我们肯定会频繁调用它, 每次调用都走一次if 判断 , 性能就会降低, 那我们就要想一个办法 , 只在第一次调用时判断一次, 后面再次调用就不用判断了, 这就是惰性函数的用法: 直接在函数内部重 ......

我们正常封装一个兼容的绑定事件函数会这样写:

function addevent(dom, type, handle) {
    if (dom.addeventlistener) {
        dom.addeventlistener(type, handle, false)
    } else {
        dom.attachevent('on' + type, handle)
    }
}

看起来没什么问题, 但是, 既然我们封装了这样一个函数, 那我们肯定会频繁调用它,

每次调用都走一次if 判断   , 性能就会降低,  

那我们就要想一个办法  , 只在第一次调用时判断一次, 后面再次调用就不用判断了,  

这就是惰性函数的用法:

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

直接在函数内部重写这个函数。