jquery源碼解讀系列四之callbacks、deferred、when

一、callbacks

callbacks是一個多用途的回調函數列表對象,提供了一種強大的方法來管理回調函數隊列。基于發布定于的觀察者模式的設計,整個$.Callbacks是一個工廠函數,使用函數調用(非new,它不是一個類)創建對象,它有一個可選參數flags用來設置回調函數的行為,對外的接口也就是self的返回。

1)如果不是once模式,即可用多次觸發回調函數列表,則從變量stack中彈出存放的下文和參數,再次執行整個回調函數列表,直到stack為空。可用下面的事例驗證:

2)如果是once模式,并且不是memory模式,則禁用回調函數列表。可用下面的示例驗證:


3)如果是once+memory模式,則清空數組list,后續添加的回調函數還會立即執行。可用下面的示例驗證(jQuery的$.ajax()和$.Deferred()基本功能組件):


二、deferred

getAttribute?ie7有兼容性問題

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容