IIFE 立即執行的函數 (Immediately Invoked Function Expression)

Node.js IIFE 立即執行的函數 (Immediately Invoked Function Expression)

IIFE Example

(function() {
  /* */
})()
(() => {
  /* */
})()
(function doSomething() {
  /* */
})()
;(function() {
  /* */
})()

什麼是 IIFE 立即執行的函數

IIFE 立即執行的函數 (Immediately Invoked Function Expression)

  • 立即執行的函數,馬上執行 function 的 expression ()
  • 避免 local scope 的變數污染到 global scope
  • 避免 global scpoe 變數被污染,影響 local scope 程式執行
var greeting = `Hello`;
(function(name) {
    let greeting=`Hi`
    // Hi KJ
    console.log(`${greeting} ${name}`)
})(`KJ`);
(function($) {
    // $ 在函數內指的就是 jQuery,變數不會被污染
})(jQuery);

靜態變數

用 IIFE 模擬出靜態變數的結構

var Employee = (function() {
    var sharedVariable = 0;

    function Employee() {
        ++sharedVariable;
        console.log("sharedVariable : " + sharedVariable);
    }

    return Employee;
})();

// 1
new Employee();
// 2
new Employee();
// 3
new Employee();  
// 4
new Employee();  

參考資料