8
我是Angular的新手,我刚刚完成了来自Code School的Angular初学者的教程。现在在第二个视频中,课程的讲师说我们将把我们的整个应用程序代码封装到一个闭包中。以下是该视频的链接。他在00:30说这个地方。现在为什么将我们的代码封装到闭包中是一种很好的做法?是否将代码封装成闭包是个好习惯?
我是Angular的新手,我刚刚完成了来自Code School的Angular初学者的教程。现在在第二个视频中,课程的讲师说我们将把我们的整个应用程序代码封装到一个闭包中。以下是该视频的链接。他在00:30说这个地方。现在为什么将我们的代码封装到闭包中是一种很好的做法?是否将代码封装成闭包是个好习惯?
瓶盖主要用于创建私有范围,避免泄漏到了全球范围内的变量。
进一步解释:因为函数是唯一能够在JS中创建新范围的东西,所以使用[IIFE](http://benalman.com/news/2010/11/immediately-invoked-function-expression/)可以为您的代码创建一个不太可能污染全局范围的范围。 – GregL
不知道“泄漏”,但肯定是用来避免全局变量。据我所知,它主要是出于语义原因被视为良好的做法,因为它保持代码模块化,因此更容易维护。 – RobG
@ GregL- * eval *创建新的作用域(尽管它是作用域的副本),同时也可以创建新的主机对象实例(例如,框架,它们也有自己的全局对象)。此外,* with *修改范围链(尽管它不会创建“新”范围)。 – RobG