我正在学习Angular,到目前为止我用过的所有资源都在app.js
文件中看到了这个:
(function () {
\\\myAngularModules
})();
最常见的解释是无益的“这只是一种良好的做法”。
问题:
请尽可能举例。
答案 0 :(得分:3)
这就是所谓的立即调用的匿名函数(IIFE)。它允许我们创建一个新的函数范围并立即运行代码,这样我们就不会创建任何变量或其他项目" leak"出来并操纵全球范围。
将代码泄露到全局可能会影响其他模块或第三方代码。这也有助于保护您的代码,方法是考虑您正在使用的未在本地范围内声明的对象。
http://gregfranko.com/blog/i-love-my-iife/作为更详细的解释,涵盖其他深奥的事物,如缩小的好处。
答案 1 :(得分:2)
将Angular JS代码包装在一个函数中真的很好吗? 为什么呢?
这是一种很好的做法,称为模块模式。作为一种模式有它的优点和缺点。但是,它是JS世界中使用最多的模式之一。简而言之,它允许您声明您想要的变量,函数等,而不会与您在应用中使用的任何js代码发生冲突。
有关上述内容的更多信息,请查看here。
它有什么功能,它有什么作用?
这是一个经典的功能。更不用说了。在最后使用调用操作符()
,我们调用该函数来执行。后者也称为IIFE
,立即调用匿名函数。