Skip to content
Wen-Hsiu Hsu's Avatar Image
Wen-Hsiu Hsu's Avatar Image

程式碼之外,還有生活的藝術 前端工程師 / 攝影 / 生活紀錄

  • 文章85
  • 標籤46
Buy Me A Coffee

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 建立基礎。

2026-04-2913 分鐘閱讀

詳解 JavaScript 函式回傳函式時的執行流程,包含執行環境 (Execution Context) 的建立與銷毀、Call Stack 的 push/pop、本地記憶體隔離機制,並釐清函式被回傳後與外層函式「再無任何連結」的核心觀念,為理解 Closure 奠定基礎。

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)的用法。

2026-04-2610 分鐘閱讀

比較四種 JavaScript 函式定義語法,說明箭頭函式的簡寫規則與 this 行為差異,介紹匿名函式的使用時機,以及內建 Array.prototype.map 的運作原理與原型鏈基礎。

MIT Licensed | Copyright © 2025-present Wen-Hsiu's Blog
Photo by Federica Galli on Unsplash