惰性函数

什么是惰性函数?

我的理解是,在运行一次之后,通过判断,重写函数,简化逻辑.

 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对象的时候,就用的是这个新的函数了,旧版本里的判断就不需要再执行了.简化了逻辑,提高了效率(一点点).

 

posted @ 2015-09-18 09:03  杯酒红尘  阅读(164)  评论(0编辑  收藏  举报