闭包函数
定义: 闭包是指有权访问另一个函数作用域中的变量的函数
创建闭包的常见方式:
就是在一个函数内部创建另一个函数,通过另一个函数访问这个函数的局部作用域。(变量被引用的时候,垃圾回收机制是不能回收的。)
闭包的特点:
让一个局部变量像全局一样,通过制定的方法,可以在全局中使用。
闭包的好处:
1、 在全局中使用局部变量
2、 可以延长局部变量的生命周期
闭包的缺点:
局部变量会常驻内存,容易造成内存的泄露。
闭包的实现原理:
js的垃圾回收机制。
形成闭包的条件:
1、 存在一个嵌套函数, 内存函数对外层函数的变量 存在引用关系
2、 内层函数作为返回值被返回。
例子:
// 闭包
function a() {
var i = 1;
return function b(){
console.log(i);
}
}
a()(); // 1