在模块文件上实例化模块对象而不是在使用它的文件上实例化模块对象是否有任何优点/缺点?
在模块文件上实例化模块的示例:
module.js
const someModule = (function() {
const doSomething = function(id) {
console.log("doing something");
};
return {
doSomething: doSomething
};
})();
export someModule;
main.js
import { someModule } from "./module";
someModule.doSomething();
在使用它的文件上实例化模块的示例:
module.js
const someModule = function() {
const doSomething = function(id) {
console.log("doing something");
};
return {
doSomething: doSomething
};
};
export someModule;
main.js
import { someModule } from "./module";
someModuleInstance = new someModule();
someMosomeModuleInstance.doSomething();
第一个示例在主文件的全局范围内仅具有“ someModule”(来自import语句),而第二个示例在全局范围内同时具有“ someModule”及其实例。那么第一个例子更好吗?