我正在用一些javascript函数模拟require
功能,例如:
// We set up an object that will include all the public modules
// And then a require function which basically just accesses that public module
const modules = {};
function require(moduleName) {
return modules[moduleName];
}
modules['math.js'] = function() {
// hidden implementation details
let incr = x => ++x;
return {
incr,
sum(x,y) { return x+y; }
}
}
为什么它需要执行modules['math.js'] = (function() {...})();
次,而不仅仅是上面提到的正常的未调用函数调用?