JavaScript IIFE (立即函数)

甚麽是立即函数?

IIFE (Immediately Invoked Function Expression)从字面上可以知道
就是一个 在宣告当下就会马上被执行的函数
语法:

(function(){
 // 被执行的程序码
}());

它呼叫函数的 () 也可以写在外面如下:

(function(){
 // 被执行的程序码
})();

下面这个范例是用变数来接立即函数回传的值(注意hello不是函式),看好了!

var hello = (function(name){
return 'Hello '+name;
}('Ivy'));

console.log(hello);//Hello Ivy

立即函式可以保护全域命名环境不受污染,也用来减少全域变数的使用
很多有名的Javascript的函式库也都用立即函式,例如JQuery。
EX:

(function () {

   // name 是一个区域变数
   var name = 'Ivy Huang';
   
   // 显示 Ivy Huang
  console.log(name);

}());

//但是在外面呼叫既会出错
console.log(name);// Uncaught ReferenceError: name is not defined

立即函式的使用时机

适合用在只执行一次的程序码,如此可以少用全域变数,也可以保护里面的变数不会暴露在全域之中(才不会任人取用),此外全域变数区域化可以减少档案的大小,好处多多。

参考文章:
JavaScript 立即执行函数 IIFE (Immediately Invoked Function Expression) / Self-invoking Function
立即函式(IIFE)
你不可不知的 JavaScript 二三事#Day24:函数呼叫 (Function Invocation) 与立即函数 (Self-Invoking Functions)


<<:  【没钱买ps,PyQt自己写】Day 18 / Project 使用 QTimer,自制码表(计时器) PyQt5 stopwatch DIY

>>:  Day 18 : 案例分享(6.1) 人事、差勤与薪资 - 人事招募

[Day - 08] - Spring 通用注入各式元件运作与设计

Abstract 每个开发者在开发一套系统时,必定会开发些服务所需的相关元件,但如何方便建立这些元件...

[烧烤吃到饱-1] 爱烤爱对罗 - 台中店 #中秋节烤肉精选店家

刚才看到一则新闻「中市户外禁止烤肉,家门前骑楼也不行」,既然不能在自家户外烤肉,那就改到烧烤店用餐吧...

那些被忽略但很好用的 Web API / 简易文字编辑器

学习之後,刻意进行练习能够加深印象。 前面三天我们已经习得 DesignMode、Selectio...

[Day25] Vue3 E2E Testing: Cypress 实战之 Todo MVC (上)

在经过前两天简单的介绍 Cypress,现在我想透过一个实际的范例来让大家更加了解 Cypress ...

Day10 OLED进化成Micro OLED後来找Micro LED报仇了!?

上一期说到Micro LED的厉害之处,不过今天要说的是Micro OLED,Micro OLED继...