Dev
前端技術、踩坑紀錄與學習筆記
83 篇2026-05-0511 分鐘閱讀
釐清 closure 的常見誤解:外層函式本身沒有記憶,被回傳的函式攜帶的是定義當下的資料快照。說明本地記憶體與背包的差異、背包的私有性與持久性,以及如何透過重新指派變數釋放背包記憶體,最後延伸至 IIFE 與 Module Pattern 的核心原理。
2026-05-0412 分鐘閱讀
每次呼叫外層函式都會產生獨立的 closure,彼此狀態互不影響。本文透過程式碼範例,說明變數定義在本地、背包或全域時的不同行為,以及 JavaScript 查找變數的完整優先順序。
2026-05-0311 分鐘閱讀
拆解 JavaScript Closure 的底層實作:隱藏屬性 Scope 如何儲存背包、Closed Over Variable Environment(COVE)的正式定義,以及 Lexical Scoping 為什麼是 Closure 能夠存在的根本原因。
2026-05-028 分鐘閱讀
剖析 JavaScript Closure(閉包)的背包機制:為什麼只打包被參照的變數、資料如何保持私有,以及它在 Module Pattern 與非同步程式中扮演的關鍵角色。
2026-05-0110 分鐘閱讀
函式被定義時,會與周圍的資料產生隱藏連結。即使父執行環境已關閉,函式仍能透過這份附加的資料——也就是「背包(Backpack)」——持續存取原本的狀態。
2026-04-3010 分鐘閱讀
透過兩個範例觀察 JavaScript 函式的 Call Stack 執行流程,比較函式存取外層變數的依據究竟是「定義位置」還是「呼叫位置」,為理解 Closure(閉包)與 Lexical Scope 建立基礎。
JavaScript Hard Parts v3
#JavaScript #Closure #Scope #ExecutionContext #frontendMasters #javaScriptTheHardPartsV3 2026-04-2913 分鐘閱讀
詳解 JavaScript 函式回傳函式時的執行流程,包含執行環境 (Execution Context) 的建立與銷毀、Call Stack 的 push/pop、本地記憶體隔離機制,並釐清函式被回傳後與外層函式「再無任何連結」的核心觀念,為理解 Closure 奠定基礎。
JavaScript Hard Parts v3
#JavaScript #ExecutionContext #CallStack #frontendMasters #javaScriptTheHardPartsV3 2026-04-2810 分鐘閱讀
說明 JavaScript Closure(閉包)的運作原理:函式執行後本地記憶體為何清空、回傳函式如何讓資料得以持久保存,以及 Closure 如何成為 once、memoize、Module Pattern 與非同步回呼的基礎機制。
2026-04-2710 分鐘閱讀
說明 JavaScript 陣列中會直接修改原始資料的變異方法(reverse、splice、sort),以及 ES2023 新增的非變異替代版本(toReversed、toSpliced、toSorted)。並介紹 Side Effect 概念,補充 flat()、findLastIndex()、Object.groupBy() 等高階函式(Higher-Order Function)的用法。
JavaScript Hard Parts v3
#JavaScript #HigherOrderFunction #PureFunction #frontendMasters #javaScriptTheHardPartsV3 2026-04-2610 分鐘閱讀
比較四種 JavaScript 函式定義語法,說明箭頭函式的簡寫規則與 this 行為差異,介紹匿名函式的使用時機,以及內建 Array.prototype.map 的運作原理與原型鏈基礎。
MIT Licensed | Copyright © 2025-present Wen-Hsiu's Blog

