1.內存溢出:指的是程序向系統申請必定大小內存,而系統不能知足程序的要求就是內存的溢出。
2.內存泄漏:指申請的內存一直得不到釋放,GC回收不了。通常在項目中就是,你聲明的變量一直保存在內存中,它有值但你把它的引用地址搞丟了一直無法用它,而GC又無法回收這塊內存給別的程序使用就叫內存泄漏。閉包
從用戶使用程序的角度來看,內存泄漏自己不會產生什麼危害,做爲通常的用戶,根本感受不到內存泄漏的存在。真正有危害的是內存泄漏的堆積,這會最終消耗盡系統全部的內存。從這個角度來講,一次性內存泄漏並無什麼危害,由於它不會堆積。code
概念:閉包就是閉包!是一種爲達到目的變通的一種寫法,由於常常用大因此把這種寫法取了個名字叫閉包。
做用:取到我本來取不到的變量,而且讓這些變量始終在內存中。
由於一直在內存中在IE裏容易形成內存泄漏,寫的時候注意下就行。內存
function fn1(){ var n=1; } //我想取到裏面的局部變量n function fn1(){ var n=1; function fn2(){//在加一個fn2當他的子集 alert(n); } }
可是我在外面仍是訪問不到那就return出來io
function fn1(){ var n=1; function fn2(){//在加一個fn2當他的子集 alert(n); } return fn2(); //return出來後 他就給 window了因此一直存在內存中 } fn1();