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

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

  • 文章150
  • 標籤70
Buy Me A Coffee

Dev

前端技術、踩坑紀錄與學習筆記

148 篇
2026-05-2114 分鐘閱讀

逐步追蹤 Object.create() 搭配原型鏈的執行流程,說明 `[[prototype]]` 隱藏屬性如何讓 JavaScript 自動向上查找方法,以及 `this` 作為隱含參數如何確保共用函式能正確作用於不同物件。

2026-05-2010 分鐘閱讀

工廠函式的記憶體缺陷,以及如何透過 Object.create() 建立原型連結,讓所有使用者物件共享同一份方法,達成高效能目標。

2026-05-209 分鐘閱讀

介紹工廠函式(Factory Function)如何解決手動逐一建立物件的重複問題,並逐步拆解 JavaScript 執行環境在每次呼叫時的運作流程,以及這個解法的記憶體效率缺陷。

2026-05-199 分鐘閱讀

介紹封裝的核心概念,並以測驗遊戲為例,示範三種在 JavaScript 中建立物件的方式:物件字面值、點記法與 Object.create(),同時說明各自的特性與適用情境。

2026-05-1910 分鐘閱讀

從「儲存資料、對資料執行操作」這兩件事出發,說明為什麼大型程式碼庫需要物件導向設計,以及 JavaScript 如何透過原型鏈實現 OOP 典範。

2026-05-1813 分鐘閱讀

說明 Promise 的錯誤處理機制:透過 `[[RejectReactions]]` 與 `.catch()` 統一管理失敗情境。並介紹 2022 年新增的 `AbortSignal.timeout()`,示範如何為 `fetch` 加上超時自動中止的能力。最後整理 Microtask Queue、Callback Queue 與 Event Loop 的完整執行規則。

2026-05-1712 分鐘閱讀

說明 JavaScript 非同步系統中存在兩個佇列:Callback Queue 與 Microtask Queue。透過同時混用 `setTimeout` 與 `fetch` 的程式碼,逐步追蹤執行時間軸,說明 Event Loop 為何永遠優先清空 Microtask Queue,以及這個規則如何決定最終的輸出順序。

2026-05-1712 分鐘閱讀

逐步追蹤同時包含 `setTimeout` 與 `fetch` 的程式碼執行流程,說明 Callback Queue 與 Promise 回呼機制如何在同一段程式碼中並行運作,並以此引出一個關鍵問題:當兩者同時就緒,究竟誰先執行?

2026-05-1612 分鐘閱讀

說明 `fetch` 建立的 Promise 物件如何跨越 JavaScript 引擎與瀏覽器兩個環境:瀏覽器的網路請求持有指向 Promise 物件的記憶體參照,背景工作完成時透過這個參照直接更新 `[[Result]]`。同時說明 Promise 物件為何不會在局部執行環境退出後消失,以及為何 Promise 回呼使用的不是 Callback Queue,而是優先權更高的 Microtask Queue。

2026-05-1613 分鐘閱讀

說明 `fetch` 作為雙管齊下的幻象函式的運作方式:呼叫當下同時在瀏覽器背景發出 HTTP 請求,並立刻在 JavaScript 中回傳 Promise 物件。介紹 Promise 的 `[[Result]]` 與 `[[FulfillReactions]]` 兩個隱藏屬性,以及 `.then()` 的作用,並逐步追蹤從發出請求到資料回傳的完整執行流程。

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