開心生活站

位置:首頁 > 綜合知識 > 

js閉包的理解

js閉包的理解

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

標籤:js 閉包