闭包就是能够读取其他函数内部变量的函数。例如在javascript中,只有函数内部的子函数才能读取局部变量,所以闭包可以理解成“定义在一个函数内部的函数”
<html>
<script>
function a(){
var i = 0
function b(){
alert(i++)
}
return b
}
var c = a()
c()
c()
</script>
</html>
函数b是定义在函数a内部的函数,所以可以读取函数a内部变量i,c指向的是函数a内部函数b的引用,因为被函数a外的变量持有,函数a不会被垃圾回收,形成了闭包