Javascript高级技巧系列--惰性载入函数

168 阅读1分钟

在业务中,经常要使用if做条件判断,惰性载入函数的技巧,有助提升这部分代码的性能

doAction(){
    if(condition1){
        // do someThing1...
    }else if(condition2){
        // do someThing2...
    }else{
        // do someThing3...
    }
}

每次代码执行到doAction 都要进行if判断,那么我们可以使用惰性载入函数的技巧,使这部分判断,不必每次都执行

doAction(){
    if(condition1){
        doAction=function(){
            // do someThing1...
        }
    }else if(condition2){
        doAction=function(){
            // do someThing2...
        }
    }else{
        doAction=function(){
            // do someThing3...
        }
    }
    return doAction();
}

上述代码,有效的实现了函数覆盖,原有函数被覆盖,再次被执行的时候,会直接调用被分配的函数,而不用每次都执行if判断了。

除了上述形式,还可以在声明时,就指定适当函数,这样,第一次调用函数时就不会损 失性能了,而在代码首次加载时会损失一点性能。

doAction(){
    ()=>{
        if(condition1){
           return function(){
               // do someThing1...
           }
        }else if(condition2){
           return function(){
               // do someThing2...
           }
        }else{
           return function(){
               // do someThing3...
           }
        }
    }
}