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 |