組長要求「不要寫面向對象,改用最低級寫法,方便其他 JS 直接調用方法」。這反映了項目實際與理論規範的衝突。結論:視項目規模、團隊協作模式、歷史包袱而定,無絕對標準。
面向對象優勢
- 命名空間隔離,減少全局污染
- 封裝狀態與行為,便於單元測試
- 符合 ES6 Class / TypeScript 現代生態
何時可考慮「平鋪式」寫法
- 極小型頁面、單頁腳本、無復用需求
- 老舊項目無模塊化打包,直接掛載
window.xxx 最省事
- 團隊成員水平參差,強行 OOP 反而產生更多錯誤
溝通建議
- 追問組長具體痛點:是調用不便、打包衝突、還是閱讀困難?
- 提出折中方案:模塊模式(IIFE)+ 導出對象,兼顧封裝與直接調用
- 若堅持平鋪式,約定命名前綴(如
pageA_init())減少衝突
長期演進
新項目建議引入 ES Modules / Webpack / Vite,強制模塊化,從根源解決命名衝突與依賴管理。歷史項目可漸進式重構。