閉包可以解決全域性變數汙染的問題,特點是在一個函式中宣告變數(此時的變數是區域性變數,不影響全域性變數),同時在該函式中再定義一些函式,閉包的特點就是函式套函式:在閉包中宣告變數,裡面的值不會受到函式外的同名變數影響,但閉包的缺點是記憶體洩漏。
程式在申請記憶體後,無法釋放已申請的記憶體空間,一次記憶體洩漏似乎不會有大的影響,但記憶體洩漏堆積後的後果就是記憶體溢位(記憶體不夠用)。
函式只有在呼叫時會發揮作用,不呼叫是會被釋放記憶體的;但是看到上面的閉包函式作為一個值給了一個全域性變數,這種情況下是清不掉的,這就造成記憶體洩露。
這樣的閉包函式多了,最後的結果就是記憶體溢位。