jquery源碼解讀系列一之總體架構

jquery的所有的代碼都是被包裹在了一個立即執行的匿名函數表達式中,這種代碼結構稱為 “自調用匿名函數” 。當瀏覽器加載完jquery文件后,自調用匿名函數會立即執行,初始化jquery的各個模塊。相關代碼如下:(后面的jquery全用$表示)

上面這段代碼設計一些javascript基礎知識和編程習慣,下面以提問的方式來逐一分析。

1)為什么要創建這樣一個自調用匿名函數?

首先,創建這樣一個自調用的匿名函數,就形成了一個特殊的函數作用域,該作用域中的代碼不會和外面的代碼沖突,比如變量,函數名,方法等。然后暴露出了jquery和$兩個全局對象供外部調用。

2)為什么要為自調用匿名函數傳入window和undefined參數?

第一,通過傳入window和undefined,可以使其二者變為局部變量,這樣在jquery代碼塊中訪問二者的時候,不需要將作用域鏈回退到頂級作用域,從而可以更快的訪問window對象,

第二,undefined在IE9以及其他低版本瀏覽器中,是可以被修改的,這里傳入就可以保證undefined的值始終是undefined。

3)注意到自調用匿名函數最后的分號了么?

通常在javascript中,如果語句分別放置在不同的行中,則分號是可選的,但是在對于自調用匿名函數來說,在之前或者之后省略分號都可能會引起語法錯誤。

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

推薦閱讀更多精彩內容