惰性加载函数(js的问题)

2023-12-16 23:49:09

在web开发中,因为浏览器之间的实现差异,一些嗅探工作总是不可避免。

var addEvent = function( elem, type, handler ){
        if ( window.addEventListener ){
            return elem.addEventListener( type, handler, false );

        }
        if ( window.attachEvent ){
            return elem.attachEvent( 'on' + type, handler );
        }
    };

这个函数的缺点是,当它每次被调用的时候都会执行里面的if条件分支。
下面这个函数虽然仍然有一些分支判断,但是在第一次进入条件分支之后,在函数内部就会重写这个函数,重写之后的函数就是我们希望的addEvent函数。

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

文章来源:https://blog.csdn.net/dxn16638400024/article/details/135038860
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。