惰性加载函数

1.普通函数

缺点: 每次调用要重复判断

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

2.避免每次重复判断

缺点:首次页面加载会进行一次判断,延缓页面首次加载数据onready

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.attachEvent( 'on' + type, handler );
        } 
    }
})();

3.惰性加载

var addEvent = function( elem, type, handler ){
    if ( window.addEventListener ){
        addEvent = function( elem, type, handler ){
            elem.addEventListener( type, handler, false );
        }
    }else if ( window.attachEvent ){
        addEvent = function( elem, type, handler ){
            elem.attachEvent( 'on' + type, handler );
        }
    }
    addEvent( elem, type, handler ); 
};
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 前端开发不可避免的会有跨浏览器的需求,为了兼容各浏览器,绝大时候我们的处理方式都是用几个if...else或者tr...
    哦啦吧啦丶阅读 6,197评论 0 4
  • 1.常规 缺点:每次调用都会执行条件判断,可避免 2.改进,只在加载时做判断 缺点:虽避免了判断,但如果从未使用过...
    魔法少女王遗疯阅读 1,553评论 0 0
  • 处理 IE 兼容性问题时,一般会进行一些嗅探操作,如何更好的解决这个问题呢? 例如下面自定义绑定事件函数: 标准写...
    rocneal阅读 1,351评论 0 0
  • 函数和对象 1、函数 1.1 函数概述 函数对于任何一门语言来说都是核心的概念。通过函数可以封装任意多条语句,而且...
    道无虚阅读 10,195评论 0 5
  • 原文 文蔚谓“致知”之说,求之事亲、从兄之间,便觉有所持循者,此段最见近来真切笃实之功。但以此自为不妨,自有得力处...
    鸿图大展阅读 11,149评论 0 0

友情链接更多精彩内容