jquery原始碼學習 初始 1

2021-09-06 17:39:08 字數 930 閱讀 2285

最近幾天一直在研究jquery原始碼,由於水平太低看得昏頭轉向。本來理解的也不是很深刻,下面就用自己的想法來說下jquery是如何定義建構函式初始化的。如果有什麼不對的地方,希望個位高手指出。

首先要了解下什麼時候自執行匿名函式 ,它的用途就是 相當於建立乙個命名空間,只要把自己所有的**寫在這個特殊的函式包裝內,外部不能訪問,除非你允許。

基本格式

(function())();

(function()

})();

$(); // 靠居然報錯,因為$方法為區域性變數,外部是無法訪問。

尼瑪那要怎麼訪問啊?

其實我們可以把這個$函式掛載到乙個全域性變數上

(function()

//對外介面,把$掛載到window下

window.$ = $;

})();

$(); //果斷列印出10

jquery其實還加上了2個引數

(function(window, undefined))(window);

第乙個引數為window物件。

1.其實主要是為了優化作用域查詢速度。

如果不傳window引數,自執行匿名函式內使用window物件,此作用域並沒有找到window物件,所以會向上一層作用域查詢(即全域性)。

2.然後可以傳引數可以改名字,詳見壓縮版jquery庫。

第二個引數為undefined。

1.傳這個引數主要是有些低版本瀏覽器undefined可以修改

var undefined = 10;

alert(undefined);

ie7,8下彈出10,其他瀏覽器彈出10,所以傳個undefined引數,防止找到作用域外可能被改過的undefined

2.與window引數同理

jQuery原始碼學習

jquery框架學習 1 定義變數和函式 2 給jq物件,新增一些方法和屬性 3 extend jq的繼承方法 4 jq.extend 擴充套件jq的一些工具方法 5 jq複雜的選擇功能 6 callbacks 回函物件,函式的統一管理 7 deferred 延遲物件,對非同步的乙個統一管理 8 s...

jquery原始碼解析1

學了很久的js也寫了很長時間的jquery了,這裡來以學習的態度來看大牛的思想和架構。使用的是當前最新版本 3.1.1 就不考慮煩人的ie 6 7 8了,輕鬆愉快。其實一上來不知所措,這都是啥?function global,factory return factory w else typeof ...

jquery原始碼解讀1

function global,factory returnfactory w else pass this if window is not defined yet typeofwindow undefined window this,function window,noglobal 其中形參gl...