内存泄漏与内存溢出
1.内存溢出:指的是程序向系统申请一定大小内存,而系统不能满足程序的要求就是内存的溢出。
2.内存泄漏:指申请的内存一直得不到释放,GC回收不了。一般在项目中就是,你声明的变量一直保存在内存中,它有值但你把它的引用地址搞丢了一直没法用它,而GC又没法回收这块内存给别的程序使用就叫内存泄漏。
从用户使用程序的角度来看,内存泄漏本身不会产生什么危害,作为一般的用户,根本感觉不到内存泄漏的存在。真正有危害的是内存泄漏的堆积,这会最终消耗尽系统所有的内存。从这个角度来说,一次性内存泄漏并没有什么危害,因为它不会堆积。
闭包
概念:闭包就是闭包!是一种为达到目的变通的一种写法,因为经常用大所以把这种写法取了个名字叫闭包。
作用:取到我原本取不到的变量,并且让这些变量始终在内存中。
因为一直在内存中在IE里容易造成内存泄漏,写的时候注意下就行。
function fn1(){
var n=1;
}
//我想取到里面的局部变量n
function fn1(){
var n=1;
function fn2(){//在加一个fn2当他的子集
alert(n);
}
}
但是我在外面还是访问不到那就return出来
function fn1(){
var n=1;
function fn2(){//在加一个fn2当他的子集
alert(n);
}
return fn2(); //return出来后 他就给 window了所以一直存在内存中
}
fn1();
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。