[筆記] JavaScript Class 與工廠函式之異同

JavaScript 的 Class 與工廠函式都可用於封裝狀態、事件、隱藏內部使用的變數,讓後續管理上變得容易。這邊筆記下兩著寫法的區別和 Demo。

javascript es6 logo


內容

比較表

項目 Class Functional programming ( FP )
擴展性 高,適合添加更多功能與繼承 低,功能擴充需修改原函式
效能 稍大( 需建立 class Instance ) 輕量,適合簡單用途
狀態管理 內建透過 this 管理屬性與狀態 使用閉包 Closure 維持狀態
事件綁定 事件集中在 constructor 裡 綁定較分散,增加維護成本
相依風格 接近大型前端框架寫法( 如 Vue/React Class API ) 傾向 jQuery 寫法

程式碼 Demo

FP Version

Class Version

 


參考資料

1. Day37 Prototype 工廠函式 v.s. 建構子函式

按讚加入粉絲團

延伸閱讀