你所不知道的JS | You don t Know JS
<內容簡介> 「Kyle對於JavaScript語言運作的每一個細節所展現出來的關鍵思考方式將會融入你的思維和工作流程中。」—ShaneHudson,自由前端網站開發人員「this關鍵字和原型(prototypes)非常關鍵,因為它們是使用JavaScript進行真實世界編程的基石。」—NickBerardi,RDA公司資深顧問《你所不知道的JS》系列包括:■導讀,型別與文法■範疇與Closures,this與物件原型■非同步處理與效能■ES6與未來發展■範疇與Closures篇不管你有多少的JavaScript使用經驗,很有可能你還是沒有完整地了解這個語言。本篇會帶你潛入範疇(scope)與closure...
<內容簡介>
「Kyle 對於 JavaScript 語言運作的每一個細節所展現出來的關鍵思考方式將會融入你的思維和工作流程中。」—Shane Hudson,自由前端網站開發人員
「this 關鍵字和原型(prototypes)非常關鍵,因為它們是使用 JavaScript 進行真實世界編程的基石。」—Nick Berardi,RDA 公司資深顧問
《你所不知道的 JS》系列包括:■ 導讀,型別與文法■ 範疇與 Closures,this 與物件原型■ 非同步處理與效能■ ES6 與未來發展
■ 範疇與 Closures 篇不管你有多少的 JavaScript 使用經驗,很有可能你還是沒有完整地了解這個語言。本篇會帶你潛入範疇(scope)與 closures(閉包)的內部,若想成為效率更好、實力更高強的 JavaScript 程式設計師,你就一定得了解這兩個核心概念。你會學到它們如何運作,以及為何如此運作,並且知道對 closures 的理解如何成為你開發技能組合中強大的一部分。
在本篇中,你會:■ 學習何謂範疇,也就是 JavaScript 引擎用來找出程式碼中區域變數位置的一組規則■ 深入到巢狀範疇(nested scope)中,也就是內含變數與函式的一系列容器■ 探索函式範疇與區塊範疇、拉升(hoisting)動作,以及基於範疇的資訊隱藏所構成的模式和帶來的好處■ 了解如何使用 closures 來進行同步或非同步的任務,包括建立 JavaScript 程式庫
■ this 與物件原型篇本篇會帶你潛入 JavaScript 的 this 結構和物件原型(object prototypes)的內部。你會學到它們的運作方式,以及它們為何是行為委派(behavior delegation)不可或缺的一部分,在這種設計模式中,物件是連結在一起的,而非複製產生的。
在本篇中,你會:■ 探索 this 繫結如何依據函式被呼叫的方式指向不同的物件■ 探討 JS 物件的本質,以及為何你需要指向它們■ 學習開發人員如何使用 mixin 模式在 JS 中偽造出類別■ 檢視 JS 的原型機制如何形成物件之間的連結■ 學習如何從類別與繼承...