1.匿名函数

  我们可以使用匿名函数,以减少冗余(以及减少名字不匹配的概率),我们可以用一个变量来保存匿名函数。

var prison = function () {
    var prisoner_name = "mike",
        jail_term  = 20;
  console.log(prisoner_name);//"mike"
};prison();

2.自执行匿名函数

  有时候,我们定义的函数不想被他人使用,不想在第三方库中共享函数中的内部变量(在第三方库中调用时,可能引起命名冲突的问题)

(function () {
     var prisoner_name = "mike",  
       jail_term  = 20; 
  console.log(prisoner_name); //"mike"}
)();

函数定义完成之后,会立即执行。被称为自执行匿名函数。
定义它时没有名字并且没有保存给变量,立即执行了。
优势:被用来控制变量的作用域,防止变量泄露到代码中的其他地方。
用处:经常被用于创建JS插件,不会和应用中的代码冲突,不会向全局环境中添加任何变量。
 3. 匿名函数中传递参数

(function ($) {
  console.log($); //"jQuery"}
)(‘jQury’);

eg:jQuery和$是彼此的别名,可以将jQuery变量传递给参数为$的自执行匿名函数。当同时使用jQuery和Prototype库时,可以避免$被后引入的JS库覆盖。

(function (what_to_eat) {  
   var prisoner_name = "mike",
         jail_term  = 20;   console.log(prisoner_name); //"mike"
})(‘sandwich’);