function person(name,age) { //局部變數 var name = name; var age = age; var addYear = function() { age++; alert(age); } return addYear; }//閉包:局部變數和函數運行完成
記憶體泄漏也稱作“存儲滲漏”,用動態存儲分配函數動態開闢的空間,在使用完畢後未釋放,結果導致一直占據該記憶體單元。直到程式結束。(其實說白了就是該記憶體空間使用完畢之後未回收)即所謂記憶體泄漏。 記憶體泄漏形象的比喻是“操作系統可提供給所有進程的存儲空間正在被某個進程榨乾”,最終結果是程式運行時間越長,占用存儲空間越來越多,最終用盡全部存儲空間,整個系統崩潰。所以“記憶體泄漏”是從操作系統的角度來看的。這裡的存儲空間並不是指物理記憶體,而是指虛擬記憶體大小,這個虛擬記憶體大小取決於磁碟交換區設定的大小。由程式申請的一塊記憶體,如果沒有任何一個指針指向它,那麼這塊記憶體就泄漏了。 --《百度百科》 低版本瀏覽器使用閉包會引起記憶體泄漏。
function person(name,age) {
//局部變數
var name = name;
var age = age;
var addYear = function() {
age++;
alert(age);
}
return addYear;
}
//閉包:局部變數和函數運行完成不銷毀
var y = person('Tom',26);
y();