Featured image of post 【JavaScript 函式】IIFE 立即执行的函数 (Immediately Invoked Function Expression)

【JavaScript 函式】IIFE 立即执行的函数 (Immediately Invoked Function Expression)

【JavaScript 函式】IIFE 立即执行的函数 (Immediately Invoked Function Expression)

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

参考资料

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
All rights reserved,未經允許不得隨意轉載
Built with Hugo
主题 StackJimmy 设计