了解闭包
一.什么事闭包函数?
闭包函数就是声明在一个函数内部的另一个函数
例如:
function a(){
var n=0;
return function b(){
console.log('结果输出为'+n)
}
}
var c=a();
c();
此时输出n的值0
二.为什么要构建闭包函数?
-
延长变量的生命周期
这些变量的值始终保持在内存中,不会在外层函数调用后被自动清除。
-
避免全局变量的污染
函数里var n=0 是设置的一个局部变量 在外面设置一个全局变量 不会影响到这个函数里面的调用
-
私有成员的存在
因为n是函数a的私有变量,只可以在函数内部访问,在函数外部是不能访问到这个私有成员的
注意:会造成内存泄漏
三.怎样构建一个闭包函数?
闭包就是创建一个独立的环境.每个闭包里面的环境都是独立的,互不干扰
闭包的生成有三个必要条件(缺一不可)
1.在函数a里面直接或者间接返回一个函数b
2.在函数b的内部使用者函数a的私有变量
3.函数a外部有一个变量接收着函数b