插件里面的闭包函数

转载: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);
        }
    }
 
})();
原文地址:https://www.cnblogs.com/BluceLee/p/7462792.html