Javascript 什么是IIFE(立即调用函数表达式)

阅读(2407)

IIFE (立即调用函数表达式) 是一个 JavaScript 函数 ,它会在定义时立即执行。via

即:

(function(){ /* code */ }());
// 或
(function(){ /* code */ })();
// 或
!function(){ /* code */ }();
// 或
~function(){ /* code */ }();
// 或
-function(){ /* code */ }();
// 或
+function(){ /* code */ }();

IIFE最早是由 Ben Alman 在2010年一篇blog中定义,http://benalman.com/news/2010/11/immediately-invoked-function-expression

IIFE中定义的变量作用范围仅在内部,外部无法使用;在ES6中,由 let 引入的块级作用域可以取代 IIFE 的此方面用途:

{
    let tmp = ...;
    ...
}

Refer:

  1. Immediately-Invoked Function Expression (IIFE), http://benalman.com/news/2010/11/immediately-invoked-function-expression
  2. ECMAScript 6入门, http://es6.ruanyifeng.com/#docs/let#ES6-%E7%9A%84%E5%9D%97%E7%BA%A7%E4%BD%9C%E7%94%A8%E5%9F%9F
  3. Immediately-invoked function expression, https://en.wikipedia.org/wiki/Immediately-invoked_function_expression
Tags: term,iife