jQuery腳本總體結構來說,有如下形式:
對這樣的結構不很理解,也沒做深究,只知道和和所謂的
js閉包的概念相關,今天查了一些資料,有了些基本的理解。實際是定義了一個全局函數,前一個括號爲一個匿名函數,後面爲函數的調用。可以這樣理解:
如http://streamlet77.javaeye.com/blog/914305的解釋可以比較好的說明:
整個腳本是一個匿名函數(暫時叫它mainFn吧),函數被加載的時候便開始執行,mainFn可以接收兩個參數,執行時只傳遞一個參數window.
1. 具體解釋下這個寫法的意思:
2. window 函數執行時會傳入window,這個傳入的window是全局對象(通常爲Window)的
3. 一個屬性且window=this,而傳入mainFn函數中作爲其參數時,它會被存儲在
4. mainFn的調用對象中.在原型鏈中查找變量的策略是(非嵌套函數):先查找調用
5. 對象,再查找全局對象,所以這使得整個mainFn中使用的window時查找效率更高
6. undefined 由於執行時並未傳遞第二個參數,故變量undefined的值爲undefined.早期版
7. 本的瀏覽器中全局對象可能沒有undefined屬性,所以不能直接使用它.通常避免
8. 這個問題的寫法是 window.undefined = window.undefined
然後在最後讓jQuery庫中最重要的對象jQuery成爲了window對象的一個屬性,並可以簡寫爲“$”。