来自面向 OOP Java 的背景,我试图区分各种 Angularjs 组件,包括模块。我认为我找到的关于模块的最佳答案是Angularjs 模块化的 13 个步骤
在 AngularJS 上下文中,模块化是按功能而不是按类型组织的。比较一下,给定数组 time = [60, 60, 24, 365] 和 money = [1, 5, 10, 25, 50],两者属于同一类型,但它们的功能完全不同。
这意味着您的组件(控制器、过滤器、指令)将存在于模块中,而不是它们现在存在的任何地方。
所以是的,对于我们的 1.4x 代码,组件是可重用代码块,但在我们的 1.4x 版本上下文中,我将模块模式视为 Angularjs 中这些代码块的重复结构,尽管直到 1.5 版本才被视为真正的组件。这些模块的实现方式为您提供了组件的类型,也就是说,如果有意义的话,控制器实现结构会将其与服务或提供者区分开来。我也认为 Angularjs 文档应该解决这个问题。
这是我在 Angularjs 代码中看到的基本模式:
(function () {
// ... all vars and functions are in this scope only
// still maintains access to all globals
}());
这是一篇关于Javascript 模块模式的优秀文章。