目前我正在开发一个私人项目(用于学习),这是一个简单的待办事项清单。我尝试使用模块化模式(具体来说是揭示模块模式)。下面的图片展示了我构建它的大致想法。
我的应用程序外观的图片
因此,每个模块将在单独的js文件中,其中每个模块的结构如下:
这里有一个问题:如果我们想要创建像“帮助函数”这样的单独文件怎么办?在每个模块中编写类似于以下内容并不方便:
我有一个辅助函数(此函数仅为示例):
当然,我可以像其他模块一样创建HelpersModule,但是那样我就必须这样调用我的函数:
“这样会导致我的帮助函数不再有意义,因为它的长度不比使用document.getElementById更短。因此,为了避免每次调用帮助函数时都要输入前缀“HelpersModule”,我设计了我的HelpersModule如下:”
现在一切都运行良好,但我创建HelpersModule的方式与其他模块不一致。以不同的方式创建模块是不好的做法还是完全可以接受的?
var TaskModule = (function () {
function someFunction(parameter) {
tasks = newTasks;
}
}
这里有一个问题:如果我们想要创建像“帮助函数”这样的单独文件怎么办?在每个模块中编写类似于以下内容并不方便:
var someElement = document.getElementById('id')
我有一个辅助函数(此函数仅为示例):
var someElement = byId('id');
当然,我可以像其他模块一样创建HelpersModule,但是那样我就必须这样调用我的函数:
var someElement = HelpersModule.byId('id');
“这样会导致我的帮助函数不再有意义,因为它的长度不比使用document.getElementById更短。因此,为了避免每次调用帮助函数时都要输入前缀“HelpersModule”,我设计了我的HelpersModule如下:”
(function(window) {
window.byId = function (selector, scope) {
return (scope || document).getElementById(selector);
};
})(window);
现在一切都运行良好,但我创建HelpersModule的方式与其他模块不一致。以不同的方式创建模块是不好的做法还是完全可以接受的?
HelpersModule.byID()
和document.getElementById()
做的是同样的事情吗? - demogorgon