Javascript Angularjs模块

Javascript Angularjs模块,javascript,angularjs,Javascript,Angularjs,我刚开始发现Angular.js,并从。虽然我没有完全理解一个方面:在使用var app=angular.module('modulename',[…])创建多个模块的过程中,将它们包装在一个闭包中,并将所有js文件包含在index.html中 我很困惑,因为这家伙在所有文件中使用了相同的var-app表达式,这些文件包含在index.html中,如下所示: <script src='file1.js'></script> <script src='file2.

我刚开始发现Angular.js,并从。虽然我没有完全理解一个方面:在使用
var app=angular.module('modulename',[…])
创建多个模块的过程中,将它们包装在一个闭包中,并将所有
js
文件包含在
index.html

我很困惑,因为这家伙在所有文件中使用了相同的
var-app
表达式,这些文件包含在
index.html
中,如下所示:

 <script src='file1.js'></script>
 <script src='file2.js'></script>
file2.js
中,您有:

  (function(){
      var app = angular.module('file1Module', []);
       ...
    })()
  (function(){
      var app = angular.module('file2Module', ['file1Module']);
       ...
    })()

所以
app
对象的范围在闭包内,对吗?因此它不会污染全局名称空间,这就是为什么您可以将它们命名为
app
,而不会相互覆盖,即使它们包含在同一级别。但是这个
app
对象通过
angular.Module(…)
调用绑定到
file X Module
?或者还有其他我没有注意到的事情吗?

这里的全局变量是
angular
本身。是的,我知道这一点。我的问题是angular与我定义为模块的不同对象有什么关系?