概念:闭包,值的是词法表示不被计算的变量的函数,也就是说,函数可以使用函数之外定义的变量。
闭包就是可以让我们在函数外部使用函数内部声明的局部变量。并且闭包可以储存局部变量的值。有些有可称闭包为闭包函数。
作用
- 可以在函数外部得到函数内部的局部变量
<script>
function a(){
var i = 10;
//声明一个函数,功能是返回i
function getI(){
return i;
}
return getI;//这里不要加(),加小括号表示调用函数,而这里是返回函数
}
var funcName = a(); //调用a函数,得到a函数的返回值
//funcName == getI
//funcName() === getI()
console.log(funcName());
</script>
- 储存变量的值
<script>
function a(){
var i = 10;
//声明一个函数,功能是返回i
function getI(){
console.log(i);
i++;
}
return getI;//这里不要加(),加小括号表示调用函数,而这里是返回函数
}
var funcName = a(); //调用a函数,得到a函数的返回值
//funcName === getI
// funcName() === getI()
funcName();//11
funcName();//12
funcName();//13
</script>