Javascript 什么是IIFE(立即调用函数表达式)
阅读(2600)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:
- Immediately-Invoked Function Expression (IIFE), http://benalman.com/news/2010/11/immediately-invoked-function-expression
- 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
- Immediately-invoked function expression, https://en.wikipedia.org/wiki/Immediately-invoked_function_expression