Às vezes, você precisa fazer algumas coisas pesadas em uma função e talvez precise executá-la uma vez e depois deseja apenas usar a saída, mas sem criar outra variável.
function foo() {
var results = 'hello there';
if (foo.cache) {
console.log('from cache');
results = foo.cache;
} else {
console.log('first run');
// long dirty stuff
foo.cache = results;
}
return results;
}
//calling foo() for the first time
foo(); // => 'first run' and will return 'hello there'
//calling it for the second time
foo(); // => 'from cache' and will return 'hello there'
Aproveitar!