一、概念
闭包是一个函数访问另一个函数的内部变量,使得函数不被垃圾回收机制回收,但是闭包过多容易导致内存泄漏。
二、好处
1、希望一个变量长期驻扎到内存当中; 2、避免全局变量的污染; 3、私有成员的存在; 4、安全性的提高
以下代码运行时,当把n赋值为100时,函数的调用次数打乱,使用闭包的方式能使变量n避免全局变量的污染,使得n长期驻扎到内存当中等。
var n=0
function getNumber(){
n++
console.log(n);
}
以下代码,add函数能够访问getCount函数内部变量n,【定义全局变量a是指向函数add】使得函数不被垃圾回收机制回收,但是全局变量过多容易导致内存泄漏。【内存泄漏:不再使用的内存未能被程序释放】。
function getCount(){
let n=0;
function add(){
n++
console.log(n);
}
return add
}
const a=getCount()
三、注意
闭包不一定有return和内存泄漏。