• Home
  • About
    • 知易行难 photo

      知易行难

      front-end developer

    • Learn More
    • Email
    • Github
    • Weibo
  • Posts
    • All Posts
    • All Tags
  • Projects

立即执行函数表达式IIFE

26 Jul 2017

Reading time ~1 minute

南戴河

立即执行函数表达式IIFE(Immediately Invoked Function Expression)

立即执行函数,顾名思义,就是编译器编译到这个函数时,可以立即执行。而不是像一般的函数那样需要根据函数名来调用执行,传统的函数调用,比如下面的这个是传统的调用方式:

function a1(){
  //code
}
a1()//调用a1

立即执行函数是这样的:

(function(){
  //code
})()  //调用

两种表达方式

第一种(括号在外面):

(function(){
  //code
})()

第二种(括号在里面):

(function(){
  //code
}())

这两种形式在功能上是一致的,选择哪个全凭个人喜好。

IFE的一种进阶用法

IIFE的一个进阶用法是把它们当做函数调用并传递参数进去。写插件时为了不污染全局变量,可以用这种方式。 例如:

var a = 2;
(function IIFE(global){
  var a = 3;
  console.log(a);  //3
  console.log(global.a);  //2
})(window)
console.log(a)  //2


立即执行函数表达式IIFE Share Tweet +1