js 允许使用内部函数---即函数定义和函数表达式位于另一个函数的函数体内。而且,这些内部函数可以访问它们所在是外部函数中声明的所有局部变量。参数和声明的其他内部函数。当其中一个这样的内部函数在包含他们的外部函数之外调用时就会形成闭包
简而言之 闭包就是指:能够访问另一个函数作用域的变量的函数,可以理解成定义在一个函数内部的函数
function a(){
var num = 1;
return function(){
return num++
}
}
var c = a();
c() // 1
c() // 2
使用闭包的注意点
- 如果滥用会造成内存泄漏
- 闭包会在函数外部改变函数内部的值,所以要注意不要随便改变夫函数内部变量的值