假设我有这段代码(小提琴)旨在记忆模块:
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");
代码中没有任何地方提到“结果”这个短语。为什么它会在第一个控制台日志中返回该值?
name
另外,当声明中没有指定参数时,返回函数如何获取参数的值module: function() {}
?