JavaScript:立即执行函数

6,881 阅读1分钟

前言:

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

立即执行函数的两种常见写法

  • 匿名函数包裹在一个括号运算符中,后面跟一个小括号
(function(){
    //...
})()
  • 匿名函数后面跟一个小括号,整个包裹在一个括号运算符中
(function(){
    //...
}())

(),!,+,-,=等运算符都能起到立即执行的作用,这些运算符的作用就是将匿名函数或函数声明转换为函数表达式。

注意:

  • 函数体后面要有小括号()
  • 函数体必须是函数表达式而不能是函数声明

例:

(function (test) {    //使用()运算符,输出123
    console.log(test);
})(123);

(function (test) {    //使用()运算符,输出123
    console.log(test);
}(123));

!function (test) {    //使用!运算符,输出123
    console.log(test);
}(123);
var fn = function (test) {  //使用=运算符,输出123
    console.log(test);
}(123);

好处

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

总之:立即执行函数会形成一个单独的作用域,可以封装一些临时变量或者局部变量,避免污染全局变量。