」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 立即呼叫函數表達式 (IIFE)

立即呼叫函數表達式 (IIFE)

發佈於2024-11-07
瀏覽:974

Immediately Invoked Function Expression (IIFE)

立即呼叫函數表達式 (IIFE) 是一個 JavaScript 函數,一旦定義就立即執行。它通常用於避免污染全域範圍或為變數建立私有範圍。

這是一個 IIFE 的簡單範例:

(function() {
    var message = "Hello from IIFE!";
    console.log(message);
})();

解釋:

  • 函數用括號括起來:(function() { ... })。這使得 JavaScript 引擎將其視為表達式。
  • 緊接著函數的右括號之後,再加入另一組括號 () 以立即呼叫該函數。
  • 此函數在定義後立即運行,記錄「Hello from IIFE!」到控制台。

輸出:

Hello from IIFE!

用法:

當您想要建立新作用域時,IIFE 非常有用,特別是為了保護變數不被函數外部存取或修改:

(function() {
    var counter = 0;  
// This counter is private and can't be accessed from outside

    function increment() {
        counter  ;
        console.log(counter);
    }

    increment(); // Logs: 1
    increment(); // Logs: 2
})();

console.log(typeof counter); 
// Logs: "undefined", because `counter` is not accessible here.

這確保了像計數器這樣的變數保持私有,並且不會意外修改或從程式碼的其他部分存取。

版本聲明 本文轉載於:https://dev.to/pranavbakare/immediately-invoked-function-expression-iife-3m1l?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>
  • 以下是一些適合您文章的基於問題的標題:

* 如何在 PHP 中將 dd/mm/yyyy 轉換為 yyyy-mm-dd:簡單指南
* PHP 日期格式轉換:dd/mm/yyyy 到 yyyy-mm-dd - 最佳方法
    以下是一些適合您文章的基於問題的標題: * 如何在 PHP 中將 dd/mm/yyyy 轉換為 yyyy-mm-dd:簡單指南 * PHP 日期格式轉換:dd/mm/yyyy 到 yyyy-mm-dd - 最佳方法
    PHP 日期格式轉換:dd/mm/yyyy 到yyyy-mm-dd在dd/mm/yyyy 和之間轉換日期格式yyyy-mm-dd 在PHP 可能具有挑戰性。 問題:使用 dd/mm/yyyy 格式的日期時會出現主要問題。由於斜線分隔符號 (/) 造成歧義,PHP 通常採用美國 m/d/y 格式,而不...
    程式設計 發佈於2024-11-07
  • 為什麼Go函數中修改指標有時不影響原值?
    為什麼Go函數中修改指標有時不影響原值?
    Go中指標的修改,理解差異在Go中,當指標傳遞給函數時,我們通常會修改值該指針所指向的。通常,這可以透過取消引用來實現,如下列程式碼所示:type Test struct { Value int } func main() { i := Test{2} p := &i...
    程式設計 發佈於2024-11-07
  • 週建構互動遊戲
    週建構互動遊戲
    第 2 周:构建互动游戏 第三课:游戏物理与运动 3.1 理解游戏物理 游戏物理涉及模拟现实世界的物理,使游戏更加真实和引人入胜。速度、加速度和重力等基本物理原理可以使游戏中的动作和交互感觉自然。 3.1.1 速度和加速度 速度是物体...
    程式設計 發佈於2024-11-07
  • 如何使用 BeautifulSoup 從 Python 中的 HTML 表中擷取資料?
    如何使用 BeautifulSoup 從 Python 中的 HTML 表中擷取資料?
    BeautifulSoup解析表在Python中,BeautifulSoup提供了強大的解析HTML文件的方法。當遇到這樣的場景,您需要從表格中檢索特定資料時,BeautifulSoup 就派上用場了。 要提取目標行項目表,請使用 soup.find(),在表中指定適當的屬性括號。在這種情況下,您需...
    程式設計 發佈於2024-11-07
  • 如何在react中使用PKCE實現oAuth以進行第三方集成
    如何在react中使用PKCE實現oAuth以進行第三方集成
    在為第三方整合實作oAuth時,我偶然發現了一些很長一段時間沒有更新的資訊。在這裡,我試著記錄我的經驗及其運作方式 注意:本文不會詳細討論oAuth及其運作方式。主要關注如何在 React 應用程式中配置和實現它們。如果您想了解 oAuth,請閱讀此處。提供清晰的資訊。 流程: 大...
    程式設計 發佈於2024-11-07
  • 為什麼我在 POST Jersey 請求中收到不支援的媒體類型錯誤?
    為什麼我在 POST Jersey 請求中收到不支援的媒體類型錯誤?
    POST Jersey 請求中不支援的媒體類型錯誤遇到HTTP 狀態代碼415 - 對Jersey 的POST 請求中不支持的媒體類型REST 服務,問題通常在於Jersey 發行版中缺少JSON/POJO 支援。要解決此錯誤,需要在專案中新增必要的 JAR 依賴項。 具體來說,需要以下依賴:jer...
    程式設計 發佈於2024-11-07
  • 針對 XSS 的常見防禦措施有哪些?
    針對 XSS 的常見防禦措施有哪些?
    針對 XSS 的常見防禦輸入和輸出清理是防止跨站腳本 (XSS) 攻擊的關鍵技術。本文探討了產業和個人網站廣泛採用的減輕這種威脅的方法。 1。 HTML 轉義:在將所有使用者輸入顯示為 HTML 程式碼之前徹底轉義它們。這涉及將“”、“&”和“等字元替換為其相應的HTML 實體(例如,“”、“&”、...
    程式設計 發佈於2024-11-07
  • Python垃圾收集器如何自動管理記憶體?
    Python垃圾收集器如何自動管理記憶體?
    Python 垃圾收集器文件Python 垃圾收集器是一個記憶體管理系統,可以自動釋放程式不再使用的記憶體。這有助於透過防止記憶體洩漏並確保程式不會耗盡記憶體來提高效能。 垃圾收集器的工作過程分為兩步:引用計數: 解釋器追蹤每個物件的引用數量。當引用計數達到零時,該物件被認為不可達,並添加到要刪除的...
    程式設計 發佈於2024-11-07
  • PHP 如何有效率地處理大整數?
    PHP 如何有效率地處理大整數?
    PHP 可以處理大整數嗎? PHP 可能沒有明確的「BigInteger」類,但它提供了幾種處理大整數的方法整數。 使用 BC 數學函數PHP 提供BC 數學函數,如用於整數算術的 bcadd() 和 bcsub()。然而,這種方法對於大量計算來說可能會很慢。 使用 GMP 擴展GMP(GNU 多精...
    程式設計 發佈於2024-11-07
  • 如何使用 Python 字串匹配驗證 IP 位址輸入?
    如何使用 Python 字串匹配驗證 IP 位址輸入?
    使用 Python 驗證 IP 位址輸入驗證使用者輸入的 IP 位址在各種應用中至關重要。本文將探討驗證以字串形式提供的 IP 位址合法性的最有效方法。 首選方法偏離解析,而是利用 Python 標準函式庫的套接字模組。透過利用 inet_aton(),我們可以確定輸入字串是否代表有效的 IP 位址...
    程式設計 發佈於2024-11-07
  • 那麼 Pull 請求如何再次發揮作用呢?螢幕顯示#3
    那麼 Pull 請求如何再次發揮作用呢?螢幕顯示#3
    在我之前的文章中,我談到了啟動一個基於開源 GenAI 的終端應用程式。本週的任務是為另一個用戶的專案貢獻一個新功能。由於我們必須與新人合作,所以我與 Lily 合作,她開發了一個應用程序,其代碼改進功能與我的類似,只是她的角色是老鼠! 有時間的話可以去看看她的專案老鼠助手。 她的程式碼是用 T...
    程式設計 發佈於2024-11-07
  • 為什麼 Go 中不能直接將 []string 轉換為 []interface{}?
    為什麼 Go 中不能直接將 []string 轉換為 []interface{}?
    為什麼將[]string 轉換為[]interface{} 會在Go 中引發編譯錯誤轉換字串切片([] string)考慮到它們共享切片特徵以及[]string 的每個元素都可以被視為一個接口,Go 中的接口切片([]interface{}) 似乎很簡單。然而,嘗試這種轉換時會出現編譯錯誤,讓程式設...
    程式設計 發佈於2024-11-07
  • 理解 Shadow DOM:封裝 Web 元件的關鍵
    理解 Shadow DOM:封裝 Web 元件的關鍵
    在現代 Web 開發中,創建可重複使用和可維護的元件至關重要。 Shadow DOM 是 Web 元件標準的一部分,在實現這一目標方面發揮著至關重要的作用。本文深入探討了 Shadow DOM 的概念、它的優點以及如何在您的專案中有效地使用它。 什麼是 Shadow DOM? Sh...
    程式設計 發佈於2024-11-07
  • 如何使用 Java 運行時解決輸出重定向問題?
    如何使用 Java 運行時解決輸出重定向問題?
    使用Runtime 的exec() 方法解決輸出重定向問題在Java 中,利用Runtime.getRuntime().exec() 運行指令可以擷取進程的輸出和錯誤流。但是,在需要輸出重定向的情況下,單獨使用此方法可能會無效。 問題:輸出未重定向當使用Runtime.getRuntime().ex...
    程式設計 發佈於2024-11-07
  • 如何使用 CSS 懸停效果從左到右填滿背景顏色?
    如何使用 CSS 懸停效果從左到右填滿背景顏色?
    使用CSS 從左到右填充背景顏色在CSS 中,您可以透過利用線性漸層和動畫背景定位來創造迷人的懸停效果。這種方法使您能夠在懸停時從左到右用新顏色填充元素的背景。 線性漸變和背景大小關鍵是使用由兩種顏色組成的線性漸變背景,並將背景大小設定為元素寬度的兩倍。這允許您在兩種顏色之間創建無縫過渡。 背景定位...
    程式設計 發佈於2024-11-07

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3