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();