jQuery原始碼閱讀筆記

2021-07-27 05:59:31 字數 2010 閱讀 9335

一、閉包結構

//作用:消除全域性汙染

//採用閉包(匿名函式立即執行)的方式,傳入了window物件

//只在後面暴露 $ 和 jquery 這 2 個變數給外界

方式1:

(function

(window, undefined) )(window);

方式2:

(function

(window) )(window, undefined);

//方式1壓縮細節:window->w undefined->u

二、jquery 無 new構造方法的實現

(function(window, undefined) ,

// jquery.prototype 即是 jquery 的原型,掛載在上面的方法,即可讓所有生成的 jquery 物件使用

jquery.fn = jquery.prototype =

}// 這一句很關鍵,也很繞

// jquery 沒有使用 new 運算子將 jquery 例項化,而是直接呼叫其函式

// 要實現這樣,那麼 jquery 就要看成乙個類,且返回乙個正確的例項

// 且例項還要能正確訪問 jquery 類原型上的屬性與方法

// jquery 的方式是通過原型傳遞解決問題,把 jquery 的原型傳遞給jquery.prototype.init.prototype

// 所以通過這個方法生成的例項 this 所指向的仍然是 jquery.fn,所以能正確訪問 jquery 類原型上的屬性與方法

jquery.fn.init.prototype = jquery.fn;

})(window);

*jquery.fn.init.prototype = jquery.fn;

例項化方法存在這麼乙個關係鏈

三、jquery 方法的過載

例項化乙個 jquery 物件的九種過載方法場景

// 接受乙個字串,其中包含了用於匹配元素集合的 css 選擇器

jquery([selector,[context]])

// 傳入單個 dom

jquery(element)

// 傳入 dom 陣列

jquery(elementarray)

// 傳入 js 物件

jquery(object)

// 傳入 jquery 物件

jquery(jquery object)

// 傳入原始 html 的字串來建立 dom 元素

jquery(html,[ownerdocument])

jquery(html,[attributes])

// 傳入空引數

jquery()

// 繫結乙個在 dom 文件載入完成後執行的函式

jquery(callback)

四、 jquery.fn.extend 與 jquery.extend

extend 方法在 jquery 中是乙個很重要的方法,jquey 內部用它來擴充套件靜態方法或例項方法,而且我們開發 jquery 外掛程式開發的時候也會用到它。但是在內部,是存在 jquery.fn.extend 和 jquery.extend 兩個 extend 方法的,而區分這兩個 extend 方法是理解 jquery 的很關鍵的一部分。先看結論:

1)jquery.extend(object) 為擴充套件 jquery 類本身,為類新增新的靜態方法;

2)jquery.fn.extend(object) 給 jquery 物件新增例項方法,也就是通過這個 extend 新增的新方法,例項化的 jquery 物件都能使用,因為它是掛載在 jquery.fn 上的方法(上文有提到,jquery.fn = jquery.prototype )。

五、jquery 的鏈式呼叫及回溯

jQuery原始碼閱讀 swap()

swap css 交換 note this method belongs to the css module but it s needed here for the support module.if support gets modularized,this method should be m...

閱讀筆記 fsnotify原始碼閱讀

fsnotify的github位址是 fsnotify是乙個資料夾監控應用。可以使用建立乙個watcher來對某個資料夾進行監控 檔案目錄很簡單,實際就兩個程式檔案,fsnotify.go 和 各平台的fsnotify go 後乙個檔案是各個不同平台的實現 example test.go中給的是最簡...

《原始碼閱讀》原始碼閱讀技巧,原始碼閱讀工具

檢視某個類的完整繼承關係 選中類的名稱,然後按f4 quick type hierarchy quick type hierarchy可以顯示出類的繼承結構,包括它的父類和子類 supertype hierarchy supertype hierarchy可以顯示出類的繼承和實現結構,包括它的父類和...