想象一个场景,一个function的作用是进行大量的计算,然后返回这个计算结果。
那么我们是不是在每次调用的时候都计算一次呢?这样肯定不是好办法。
解决办法是把结果存起来,然后再次调用的时候直接返回结果:
当然,惰性方法只适用于每次返回结果都一样的场景。如果每次计算结果可能不一致,那么这种方法也就失效了。
那么我们是不是在每次调用的时候都计算一次呢?这样肯定不是好办法。
解决办法是把结果存起来,然后再次调用的时候直接返回结果:
function lazy(){
var r = doSomething..;
lazy = function(){
return r;
}
return lazy();
}
当然,惰性方法只适用于每次返回结果都一样的场景。如果每次计算结果可能不一致,那么这种方法也就失效了。