标签:
什么是惰性函数?
我的理解是,在运行一次之后,通过判断,重写函数,简化逻辑.
1 function createXhr(){ 2 var xhr=null; 3 if(typeof XMLHttpRequest!=‘undefined‘){ 4 xhr=new XMLHttpRequest(); 5 createXhr=function(){ 6 return new XMLHttpRequest(); 7 } 8 }else{ 9 try{ 10 xhr=new ActiveXObject(‘Msxml2.XMLHTTP‘); 11 createXhr=function(){ 12 return new ActiveXObject(‘Msxml2.XMLHTTP‘); 13 } 14 }catch(e){ 15 xhr=new ActiveXObject(‘Microsoft.XMLHTTP‘); 16 createXhr=function(){ 17 return new ActiveXObject(‘Microsoft.XMLHTTP‘); 18 } 19 } 20 } 21 return xhr; 22 23 } 24 createXhr();
第一次运行时,判断ajax实现方式,判断完成后,让createXhr直接指向针对该版本的函数,也就是说,createHhr所代表的函数改变了.
从下次开始,我们创建ajax对象的时候,就用的是这个新的函数了,旧版本里的判断就不需要再执行了.简化了逻辑,提高了效率(一点点).
标签:
原文地址:http://www.cnblogs.com/zhangfengyang/p/4818208.html