最简单的闭包 掰开揉碎

<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.不要过多使用,毕竟占了内存而且长时间不释放,是不好的

posted @ 2015-11-02 10:12  zslm___  阅读(183)  评论(0编辑  收藏  举报