在业务中,经常要使用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...
}
}
}
}