JavaScript设计模式与开发实践:惰性函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript设计模式与开发实践:惰性函数相关的知识,希望对你有一定的参考价值。

Web开发中,因为浏览器之间的差异实现差异,一些嗅探工作总是不可避免的,比如我们需要在各个浏览器中能够通用事件绑定函数addEvent

//一般写法
//缺点:当他每次被调用的时候都都会执行里面的if条件,
var addEvent = function(elem, type, handler){
    if(window.addEventLister){
        return elem.addEventListener(type, handler, false);
    }
    if(window.attachEvent){
        return elem.attachEvent(‘on‘+type, handler);
    }
}

//改进

var addEvent = (function(){
    if(window.addEventListener){
        return function(elem, type, handler){
            elem.addEventListener(type, handler, false);
        }
    }
    if(window.attachEvent){
        return function(elem, type, handler){
            elem.atttachEvent(‘on‘+handler);
        }
    }
})();

//惰性载入方案

var addEvent = function(elem, type, handler){
    if(window.addEventListener){
        addEvent = function(elem, type, handler){
            elem.addEventListener(type, handler, false);
        }
    } else if(window.atttachEvent){
        addEvent = function(elem, type, handler){
            elem.atttachEvent(‘on‘+type, handler);
        }
    }

    addEvent(elem, type, handler);
};

 

以上是关于JavaScript设计模式与开发实践:惰性函数的主要内容,如果未能解决你的问题,请参考以下文章

《javascript设计模式与开放实践》学习惰性单例模式

《JavaScript设计模式与开发》笔记 6.高阶函数

JavaScript设计模式与开发实践:分时函数

Javascript设计模式与开发实践详解(二:策略模式) http://www.jianshu.com/p/ef53781f6ef2

JavaScript设计模式与开发实践-读书笔记闭包和高阶函数

javascript设计模式与开发实践阅读笔记—— this,闭包与高阶函数