JQuery的第一個句源碼

先給出JQuery源碼的第一句:(我們就分析這一句源碼)

(function( window, undefined ) {
})(window);

這一段源碼主要有3個問題需要解答:

1、(function(){})() 這是幹嘛?

第一個括號包含的內容表示一個函數表達式,最後一個括號表示立即執行,並傳入參數,整體就是一個“立即執行的匿名函數表達式”。


2、爲什麼要將全局window當作參數傳遞進去?

這一點跟變量的作用域有關,因爲變量的搜索是按照從裏向外搜尋,因此將全局變量當成函數局部變量可以加快變量的搜尋速度。


3、爲什麼執行時不帶第二個參數:undefined?

在IE和一些其他的瀏覽器的低版本中,undefined是可以被重新賦值的,如:undefined = 9; 這樣會破壞掉JQuery內部undefined的含義,因此這裏不傳遞第二個參數是使外部的undefined無法進入JQuery內部,達到安全的目的。


總結

看看大師級的代碼真能學到許多東西。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章