閉包是什么
個人理解,閉包是就是函數(shù)中的函數(shù),里面的函數(shù)可以訪問外面函數(shù)的變量,外面的變量的是這個內(nèi)部函數(shù)的一部分。
<script>
function outer(){
var num=0;//內(nèi)部變量
return function add(){//通過return返回add函數(shù),就可以在outer函數(shù)外訪問了。
num++;//內(nèi)部函數(shù)有引用,作為add函數(shù)的一部分了
console.log(num);
};
}
var func1=outer();//
func1();//實(shí)際上是調(diào)用add函數(shù), 輸出1
func1();//輸出2
var func2=outer();
func2();// 輸出1
func2();// 輸出2
</script>
閉包的作用:
1.使用閉包可以訪問函數(shù)中的變量
2.可以使變量長期保存在內(nèi)存中,生命周期比較長。
3.閉包不能濫用,否則會導(dǎo)致內(nèi)部才能泄露,影響網(wǎng)頁的性能,閉包使用完之后,要立即釋放,將引用變量指向null