1、構造函數直接返回一個對象,避免調用時出錯。css
Function F
2、充分利用YUI是一個全局的變量,也是一個全局的對象,能夠在YUI上存放不少屬性及方法。YUI的不少全局屬性及方法都是利用YUI.Env這一個對象來進行中轉的html
Function F
3、充分利用this指向進行操做,好比YUI的對象配置分爲YUI.GlobalConfig(全局配置),YUI_config(頁面配置),YUI()(調用時傳入參數的實例配置)三部分,就在原型中定義了一個applyConfig方法,從而經過不一樣的調用來進行配置。web
4、一個yui.js在頁面上第一次被引用後的執行順序是app
檢測全局對象YUI是否存在 ----> 定義YUI構造函數 ---> 自執行函數;函數
在自執行函數時,會進行如下幾步ui
定義私有變量及方法 ----> 給html加類名 ---> 定義一個包含一系列方法及屬性的對象proto ---> 將YUI對原型指向對象proto ----> 將proto中的方法及屬性顯示的賦給YUI,從而能夠配置YUI -----> 給YUI重定義一個配置參數的方法(先配置全局的、再配置傳入的、再將全局參數重置) ---> 調用YUI._init()來初始化運行環境 –—> 監聽window.load ---> 將事件監聽及註銷函數賦給YUI.Env ---> 在YUI.Env上爲版本VERSION開闢一個空間,便於進行版本hash對象,this
運行完畢之後,一個YUI會有如下屬性及方法spa
applyConfig,_config,_init,_setup,applyTo,add,_attach,_delayCallback,use,_notify,_use,namespace,log,message,dump,error,guid,stamp,destroy,version,Env,_yuid,id,constructor,configprototype
初始化環境函數執行步驟code
定義YUI的版本號 -----> 配置環境 -------> 配置YUI的ID ------> 建立css標記元素 -------> 增長默認配置的語言 --------> 增長默認配置路徑
配置完畢的環境爲
core,loaderExtras,mods,versions,base,cdn,_idx,_used,_attached,_missed,_yidx,_uidx,_guidp,_loaded,_BASE_RE,parseBasePath,getBase,cssStampEl,add,remove,3.12.0,