0

0

0

修罗

站点介绍

只有了解事实才能获得真正的自由

js惰性函数

修罗 2020-11-08 1453 0条评论 JS

首页 / 正文

js惰性函数

针对优化频繁使用的函数,常用于函数库的编写,单例模式之中。

  • 写一个test函数,首次调用返回时间戳,后面调用返回第一次的时间戳。
var test = (function(){
    var t = null;
    return function(){
        if(t) return t
        t = new Date().getTime()
        return t
    }
})()

test()
test()
test()

1604844551262.png

惰性函数

上面每次调用test函数都会判断t是否存在,优化test。

var test = function(){
    var t = new Date().getTime()
    // 第一次调用后改变test函数
    test = function(){
        return t;
    }
    return t;
}

test()
test()
test()

1604844930451.png

应用

function addEvent(dom, type, handler){
    if(dom.addEventListener){
        // false表示事件发生在冒泡阶段
        dom.addEventListener(type, handler, false);
        // 第一次调用后改变addEvent函数
        addEvent = function(dom, type, handler){
            dom.addEventListener(type, handler, false);
        }
    }else{
        dom.attachEvent('on'+type, handler)
        // 第一次调用后改变addEvent函数
        addEvent = function(dom, type, handler){
            dom.attachEvent('on'+type, handler);
        }
    }
}

调用后,addEvent变成:

1604845659008.png

评论(0)


最新评论

  • 1

    1

  • 1

    1

  • -1' OR 2+158-158-1=0+0+0+1 or 'TKCTZnRa'='

    1

  • 1

    1

  • 1

    1

  • 1

    1

  • 1

    1

  • @@5Qa2D

    1

  • 1

    1

  • 1

    1

日历

2025年09月

 123456
78910111213
14151617181920
21222324252627
282930    

文章目录

推荐关键字: Linux webpack js 算法 MongoDB laravel JAVA jquery javase redis