Por que obtenho o valor “resultado” para esse fechamento?
Digamos que eu tenha esse código (violino) destinado a memorizar módulos:
var chat = {
// Create this closure to contain the cached modules
module: function() {
// Internal module cache.
var modules = {};
console.log('in module:', name); // <---------- "in return: result"
// Create a new module reference scaffold or load an
// existing module.
return function(name) {
console.log('in return:', name); // <---------- "in return: derp"
// If this module has already been created, return it.
if (modules[name]) {
return modules[name];
}
// Create a module and save it under this name
return modules[name] = { Views: {} };
};
}()
};
chat.module("derp");
Em nenhum lugar no código a frase "resultado" é mencionada. Por que ele retornaria esse valor no primeiro log do console?
Além disso, como a função de retorno obtém o valor para oname
parâmetro quando nenhum é especificado nomodule: function() {}
declaração?