In web development, because differences between browsers are implemented differently, some sniffing work is unavoidable, such as the fact that we need to be able to use the universal event binding function in each browser addevent
//General Wording//Cons: Every time he is called, it executes the IF condition,varAddevent =function(Elem, type, handler) {if(window.addeventlister) {returnElem.addeventlistener (type, Handler,false); } if(window.attachevent) {returnElem.attachevent (' on ' +type, handler); }}//ImprovedvarAddevent = (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); } }})();//Lazy Loading ScenariosvarAddevent =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 Design Patterns and development practices: lazy functions