使用AngularJS自行执行功能

Dan*_*iel 7 javascript angularjs

使用框架的自执行函数有什么好处,例如Angular?

我是Angular的新手,但到目前为止我的理解是基于模块的设计给出了自执行功能带来的大部分好处.我错过了什么?这只是风格问题吗?

这是Ben Nadel的一个例子.我非常喜欢这种风格,但是想通过这种方式编写Angular代码或者它主要是一种风格选择来理解是否有任何收获.

Dan*_*fer 7

主要是,它确保您的代码不在全局范围内声明,并且您声明的任何变量仍然在您的函数范围内.

在这种情况下,它还具有在一个地方声明运行代码所需的对象的好处.你可以在底部清楚地看到angularDemo对象被传入,没有别的.如果代码没有包含在函数中,则必须扫描代码以查看依赖项是什么.

就个人而言,我更喜欢使用像RequireJS这样的模块加载器,这有效地迫使你遵循这种模式.


dig*_*_mb 2

这是一个意见问题。我认为自执行函数的主要优点是不创建全局变量。我从来没有见过这种有角度的图案。

在您提供的示例链接上,它似乎没有任何优势。角度变量无论如何都会存在于角度应用程序中,因此您可以直接使用角度。演示是一个模块,您可以向其中添加控制器,而不会扰乱全局范围。

我喜欢很多自动执行的功能。但在这种情况下,我真的看不出有什么优势。