最简单的闭包 掰开揉碎
<script>
function A(name)
{
return function ()
{
alert(name);
}
}
var func=A("张三");//仅取得一个 函数变量 指针,不会真正执行函数
//按传统理解,这时"张三"这个变量就已经被销毁了,但是闭包的存在延长了他的作用域
alert(func.valueOf());//这里可以看到匿名函数的定义,更证明了,仅是一个函数指针
func(); //这里弹出了是张三的弹框
//或者直接调用
A("张三")();
</script>
闭包主要用在回调函数中
//另一个例子
1.js
(
function($){
var r=0.9;
sum=function(num1,num2)
{
return (num1+num2)*r;
};
}
) (jQuery);
1.htm
<script src="JQuery/Scripts/jquery-1.7.1.min.js"></script>
<script src="jss.js"></script>
<script>
var c=sum(1,2);
alert(c);
</script>
我的理解->闭包
1.局域变量作用域扩展
2.主要用在回调 函数中
3.不要过多使用,毕竟占了内存而且长时间不释放,是不好的