闭包的定义

闭包:函数内部可以访问函数外部的参数和变量,且该外部变量不会销毁。(一个函数存在于另一个函数中)

闭包函数:一个函数内部创建另一个函数,并把这个函数return出去,允许外部访问,这个“另一个函数”就是闭包函数。

面试题九:什么是闭包?什么是闭包函数?-Qui-Note

闭包的作用:

1.让外部访问到内部变量;

2.隐藏变量,避免全局污染;

闭包缺点:

1.变量不被垃圾回收机智回收,导致内存消耗;

2.不恰当闭包导致内存泄露;

写一个不被全局变量污染的闭包自增函数?

function aa(){
	var i = 0;
	function add(){
		console.log(i++);
	}
	return add;
}
let bb = aa();
bb(); // 0
bb(); // 1
bb(); // 2