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) 人事、差勤与薪资 - 人事招募
Abstract 每个开发者在开发一套系统时,必定会开发些服务所需的相关元件,但如何方便建立这些元件...
刚才看到一则新闻「中市户外禁止烤肉,家门前骑楼也不行」,既然不能在自家户外烤肉,那就改到烧烤店用餐吧...
学习之後,刻意进行练习能够加深印象。 前面三天我们已经习得 DesignMode、Selectio...
在经过前两天简单的介绍 Cypress,现在我想透过一个实际的范例来让大家更加了解 Cypress ...
上一期说到Micro LED的厉害之处,不过今天要说的是Micro OLED,Micro OLED继...