提升性能JS函数小技巧:惰性载入函数

惰性载入函数

       各位前端程序员都知道,因为浏览器之间的差异,在写function的时候经常要用到大量的if else判断语句,将执行引导到正确的语句中去。例如

function  XX(){
     if(){
         dosomething;}else if(){
         dootherthing;}else{
         doanotherthing;
     }
}

每次调用XX时,浏览器都要进行仔细的判断,即使每次调用时分支的结果都不变。但是我们知道只要有if这种语句的代码,肯定要比没有的要慢。所以如果if语句不必每次执行,那么我们就可以提高函数的运行效率。解决方案呢,就是惰性载入技巧。

      惰性载入函数的分支只会执行一次。有两种实现的方式。第一种是在函数被调用时在处理函数。在第一次调用时,该函数会覆盖为其中一个按照符合标准的函数(if里面的函数)。这样经过第一次调用之后,在调函数不用再经过执行的分支了。例:

function  XX(){
     if(){
         XX=function(){
               dosomething;
              };
     }else if(){
         XX=function(){
              dootherthing;
              };
    }else{
        XX=function(){
              doanotherthing;
              };
    }
    return   XX();
}

在这个惰性载入函数中,每一次执行分支都会为XX函数进行赋值,这样就会有效的覆盖原有的函数。下一次调用XX函数时就会直接调用被分配的函数。

第二种方法,明天再补充吧,太晚了先休息了~~

posted on 2013-06-02 02:26  happycloud~~  阅读(327)  评论(0编辑  收藏  举报