Photo by Mohammad Rahmani on Unsplash
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();
參考資料
- 克服JS奇怪的部分_立即呼叫式(IIFEs)與安全程式碼. 立即呼叫函式(IIFEs) | by Huang Pei | Medium
- JavaScript Immediately-invoked Function Expressions (IIFE)
Donate KJ 贊助作者喝咖啡
如果這篇文章對你有幫助的話,可以透過下面支付方式贊助作者喝咖啡,如果有什麼建議或想說的話可以贊助並留言給我
If this article has been helpful to you, you can support the author by treating them to a coffee through the payment options below. If you have any suggestions or comments, feel free to sponsor and leave a message for me!
方式 Method | 贊助 Donate |
PayPal | https://paypal.me/kejyun |
綠界 ECPay | https://p.ecpay.com.tw/AC218F1 |
歐付寶 OPay | https://payment.opay.tw/Broadcaster/Donate/BD2BD896029F2155041C8C8FAED3A6F8 |