javascript模块化编程-立即执行函数,IIFE

IIFE

全拼Imdiately Invoked Function Expression,立即执行的函数表达式。

语法

var module1 = (function(){

    var _count = 0;

    var m1 = function(){
      //...
    };

    var m2 = function(){
      //...
    };

    return {
      m1 : m1,
      m2 : m2
    };

  })();

使用上面的写法,外部代码无法读取内部的_count变量。

括号的意义

1、包住function(){}的括号的意义

 这个括号的目的,是为了把function(){}转化为表达式。方便执行。如果去掉该括号,则会报错。因为单纯的function(){}不是可执行的表达式,会直接报错

2、第二个括号的意义

 理解了第一个括号的意义,第二个括号就很简单了,就是执行表达式了。

引用

$(fuction(){
   module1.m1();//调用m1;
});