¿Cómo esta función de JavaScript almacena en caché sus resultados?

Después de leerlo varias veces, todavía no entiendo cómo funciona este código de ejemplo de la página 76 deStoyan Stefanov's "JavaScript Patterns" trabajos. Todavía no soy un ninja. Pero para mí, se lee como si solo estuviera almacenando un objeto vacío:

var myFunc = function (param) {
  if (!myFunc.cache[param]) {
    var result = {};
    // ... expensive operation ...
    myFunc.cache[param] = result;
  } 
  return myFunc.cache[param];
};
// cache storage
myFunc.cache = {};

A menos que esa "operación costosa" invisible se esté almacenando de nuevo enresult, No veo nada retenido.

¿Dónde se almacenan los resultados?

P.S .: He leído Cómo obtener los resultados de retorno de una función del Aprendizaje avanzado de JavaScript de John Resig, que es un ejercicio similar, y lo consigo. Pero el código es diferente aquí.

Respuestas a la pregunta(0)

Su respuesta a la pregunta