網站首頁 學習教育 IT科技 金融知識 旅遊規劃 生活小知識 家鄉美食 養生小知識 健身運動 美容百科 遊戲知識 綜合知識
當前位置:趣知科普吧 > 綜合知識 > 

js閉包的理解

欄目: 綜合知識 / 發佈於: / 人氣:1.82W

js閉包的理解

閉包是js中的一個特點也是一個知識難點,在定義一個全局變量的時候,如果在不知道前面的代碼的情況下,不小心定義了同一個變量名,則前面的代碼執行結果會受到影響,爲了避免這種影響,於是就有了閉包。
閉包可以解決全局變量污染的問題,特點是在一個函數中聲明變量(此時的變量是局部變量,不影響全局變量),同時在該函數中再定義一些函數,閉包的特點就是函數套函數:在閉包中聲明變量,裏面的值不會受到函數外的同名變量影響,但閉包的缺點是內存泄漏。
程序在申請內存後,無法釋放已申請的內存空間,一次內存泄漏似乎不會有大的影響,但內存泄漏堆積後的後果就是內存溢出(內存不夠用)。
函數只有在調用時會發揮作用,不調用是會被釋放內存的;但是看到上面的閉包函數作爲一個值給了一個全局變量,這種情況下是清不掉的,這就造成內存泄露。
這樣的閉包函數多了,最後的結果就是內存溢出。

Tags:閉包 js