//閉包:有參數的加載事件(空參數形式)
(function($){
alert("123");
})(jQuery);
//有參數的加載事件
(function($){
alert($);
})(456);
(function($){
$("div p").click(function(){alert("cssrain!")});
})(jQuery); //一個閉包
這里面的$只是形參,但jquery是全局變量,所以不需要調用該函數就會自動執行,或者分兩步
就是轉化成正常的函數,先寫函數,后調用。
如下所示
其實:
(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。
因為閉包后,里面的變量就相當於局部了。
閉包的好處:
不增加額外的全局變量,
執行過程中所有變量都是在匿名函數內部。
上面的例子不是很好,跟javascript的閉包有點混淆,但這確實也是jquery中的一種閉包。只不過經過jquery的加工罷了。