JavaScript立即执行函数

立即执行函数可以让你的函数在创建后立即执行,可以让你的函数在定义后立即被执行,这种模式本质上就是函数表达式(命名的或者匿名的),在创建后立即执行。

通常我们声明一个函数有以下几种方式:

  1. // 普通的声明函数f1:
  2. function one() {
  3. console.log("one");
  4. }
  5. // 通过 函数名() 来调用此函数
  6. one();
  7. //通过匿名函数的函数表达式,被赋值给变量f2:
  8. var two= function() {
  9. console.log("two");
  10. }
  11. //通过 变量名() 来调用此函数
  12. two();
  13. //命名为f3的函数的函数表达式,被赋值给变量f3:(有点画蛇添足的感觉)
  14. var three = function three () {
  15. console.log("three ");
  16. }
  17. //通过 名字()来调用此函数
  18. three ();

为何要写立即执行函数

一是不必为函数命名,避免了污染全局变量。 二是内部形成了一个单独的作用域,可以封装一些外部无法读取的私有变量。

声明立即函数有以下几种方式:

第一种方法 最前最后加括号 (f(){}())

  1. (function(){ console.log("立即执行函数") }());

第二种方法 外面加括号 (f(){})()

  1. (function () { console.log("立即执行函数") })();

第三种方法 前面加运算符,常见的是!与void

  1. !function(){ console.log("立即执行函数") }();
  2. void function(){ console.log("立即执行函数") }();

注:立即函数同普通函数一样都可以传递参数。一般我们不要给它传递太多参数,因为后面要查看代码的时候要看它如何工作而头大。