返回首页当前位置:首页 >> 网站建设 >> 正文

jQuery学习笔记58--闭包

文章来自: | 发表时间:2008-3-17 17:55:59

jQuery学习笔记58--闭包

$(function() {
jQuery.noConflict(); //把$让渡给其它类库
(function($){
     $("div p").click(function(){alert("cssrain!")});
})(jQuery);            //一个闭包
});
//实际上这个$只是个形参而已 ,真正的参数是jQuery. 所以当你用prototype里面的$时,并不冲突。
</script>
<div> <p>aaaaaaaaaaaaaaaaa</p></div>




你也许会问(function($){
     $("div p").click(function(){alert("cssrain!")});
})(jQuery);            //一个闭包
这是什么写法啊?

别急,我也是请教了upc ,才稍微懂了点。
其实:
(function($){
     $("div p").click(。。。);
})(jQuery);    
就是等于
function tempFunction($){  //创建一个以$为形参的函数
     $("div p").click(....);
}
TempFunction(jQuery);         //传入实参jQuery执行函数.

干脆直接这么写 ,算了
(function(cssrain){
     cssrain("div p").click(.... );
})(jQuery);            //一个闭包



闭包的基本写法:
(function(){do someting})();
//这个你就理解为定义一个匿名函数并立即执行
带参数的话就这样:
(function(形参){do someting})(实参);
另外
(function(){var upc="i am upc"})();
alert(upc);
会提示undefined。
因为闭包后,里面的变量就相当于局部了。

闭包的好处:
不增加额外的全局变量,
执行过程中所有变量都是在匿名函数内部。