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