插件裏面的閉包函數
阿新 • • 發佈:2017-09-01
通過 回收 eight 實例 font fun .html 安全 style
轉載:http://www.cnblogs.com/mmzuo-798/p/7275412.html
閉包的作用:1、保護函數內的變量安全;2、在內存中維持一個變量(javascript垃圾回收機制)。
利用閉包的特性,我們可以在既避免內部臨時變量影響全局空間,又可以在插件內部使用$符號作為jQuery的別名。常見的jQuery插件都是以下這種形式:
1 2 3 |
( function (){
/*編寫代碼*/
})();
|
首先定義一個匿名函數function(){/*編寫代碼*/},然後用括號括起來,最後通過()這個運算符來執行。可以傳遞參數進去,以供內部函數使用。
1 2 3 4 |
//為了更好的兼容性,開始前有個分號
;( function ($){ //此處將$作為匿名函數的形參
/*編寫代碼,可以使用$作為jQuery的別名*/
})(jQuery); //將jQuery作為實參傳遞給匿名函數
|
插件閉包實例1:
1 2 3 4 5 6 |
;( function (win){
win.Login = function (){
//code
}
Login.prototype = { |
1 |
//code
|
1 2 3 4 |
}
})(window); //傳入window對象
|
插件閉包實例2:
1 2 3 4 5 6 7 8 9 10 |
//單例模式插件
var Computer = ( function (){
var Calculator = function (o){<br> //code... <br> } Calculator.prototype = {<br> //code... <br> }
return {
calculator: function (o) {
var Cal = new Calculator(o);
}
}
})();
|
插件裏面的閉包函數