什么是闭包
如果在一个内部函数里,对在外部作用域(但不是全局作用域)的变量进行引用,那么内部函数就被认为是闭包
闭包的特点:
可以读取自身函数外部的变量(沿着作用域链寻找)先从自身开始查找,如果自身没有才会继续往上级查找,自身如果拥有将直接调用。(哪个离的最近就用哪一个)
延长内部变量的生命周期
函数b嵌套在函数a内部
函数a返回函数b
先来个小例子`
function f1(){
var b=2;
return function(){
console.log(c++)
}
}
var f2-f1();
f2()
f2()
第一次f2()输出的是3,第二次f2输出的是4,在正常点的情况下,如果函数中的值未使用,等函数执行完就会被回收。