javascript闭包
(1)作用域的好处是内部函数可以访问定义他们外部函数的参数和变量(或者全局变量).
(2)内部函数拥有比他的外部函数更长的生命周期.
示例:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
<script language="javascript" type="text/javascript">
function A(a){
return a;
}
function B(a){
return function(){
return a;
}
}
/*
因为A除了返回a外什么也没做,执行A函数时,调用堆栈被销毁
或者说调用"瞬间"产生了闭包,然后马上被销毁
*/
var x=A(10);
var y=B(20);
alert(x); //返回10
/*
B()函数调用结束时,局部变a的值并没有被销毁,由于返回的闭包里引用了B()调用域里的a的值,所以它并没有随着B()调用的结束而被销毁。
*/
alert(y()); //返回20
</script>