一、前言(演化思想)
- 全局變量(屬性、方法)
- 同名變量名沖突(值會被后一個覆蓋)
- 對象、變量之間的關(guān)系不清晰
- 文件順序的依賴
- 命名空間
- 理論上解決了命名沖突的問題,但是對象的屬性全部向外暴露,不安全
- 劃分私有命名空間
- 解決了命名沖突的問題
- 解決了屬性向外暴露,容易被修改、不安全的問題
- **
項目開發(fā)中,我們負責(zé)將各種功能封裝到對象的屬性中,匿名自執(zhí)行函數(shù),避免同名函數(shù),在自執(zhí)行函數(shù)執(zhí)行的時候,我們還可以做一些init的操作** - 擴展與維護(為了增加程序的健壯性)
- 在注入的時候做了判斷
(window.cal ||{}) - 以參數(shù)注入,防止沒有傳參,帶來的undefined.的異常
- 依賴注入的思想:通過由外部傳入對象,再給對象添加功能以后返回
- 對于維護:堅持開閉原則(對添加開發(fā)、對修改封閉)