为什么我们将Angular应用程序包装在函数中?

时间:2015-01-22 11:47:16

标签: javascript angularjs

我正在学习Angular,到目前为止我用过的所有资源都在app.js文件中看到了这个:

(function () {

       \\\myAngularModules      

})();

最常见的解释是无益的“这只是一种良好的做法”。

问题:

  1. 将我们的Angular JS代码包装在函数中真的很好吗?为什么?
  2. 它是什么类型的功能以及做什么
  3. 请尽可能举例。

2 个答案:

答案 0 :(得分:3)

这就是所谓的立即调用的匿名函数(IIFE)。它允许我们创建一个新的函数范围并立即运行代码,这样我们就不会创建任何变量或其他项目" leak"出来并操纵全球范围。

将代码泄露到全局可能会影响其他模块或第三方代码。这也有助于保护您的代码,方法是考虑您正在使用的未在本地范围内声明的对象。

http://gregfranko.com/blog/i-love-my-iife/作为更详细的解释,涵盖其他深奥的事物,如缩小的好处。

答案 1 :(得分:2)

  

将Angular JS代码包装在一个函数中真的很好吗?   为什么呢?

这是一种很好的做法,称为模块模式。作为一种模式有它的优点和缺点。但是,它是JS世界中使用最多的模式之一。简而言之,它允许您声明您想要的变量,函数等,而不会与您在应用中使用的任何js代码发生冲突。

有关上述内容的更多信息,请查看here

  

它有什么功能,它有什么作用?

这是一个经典的功能。更不用说了。在最后使用调用操作符(),我们调用该函数来执行。后者也称为IIFE,立即调用匿名函数。