面试题系列---【什么是闭包?优点和缺点】
一、什么是闭包
“闭包就是能够读取其他函数内部变量的函数。例如在 javascript 中,只有函数内部的子函数才
能读取局部变量,所以闭包可以理解成“定义在一个函数内部的函数“。在本质上,闭包是将
函数内部和函数外部连接起来的桥梁。”
举例:创建闭包最常见方式,就是在一个函数内部创建另一个函数。下面例子中的 closure 就
是一个闭包,
function func(){ var a =1 ,b = 2; funciton closure(){ return a+b; } return closure;
二、优点
1.能够读取函数内部的变量
2.让这些变量一直存在于内存中
三、缺点
1、内存消耗很大
2、一直存在于内存中不用导致内存泄漏