九jQuery原始碼解析之 each

2022-01-20 00:55:12 字數 876 閱讀 3389

jquery中存在兩個each方法都是用於遍歷的,

乙個是對jquery物件集合使用.each(),用於遍歷這個集合;

.each(function(index,element))

還有乙個是擴充套件jquery的靜態.each()方法.

從原始碼中可以看到,存在乙個呼叫,那麼我們就順藤摸瓜,直接尋找jquery.each(this, callback,args);

引數:object:待遍歷的物件或陣列.

callback:**函式,會在object上的每個元素上執行.

args:是個陣列,傳給callback作為的引數,可選.如果沒有傳入,

則在**函式時會傳入兩個引數(下標或屬性名,對應的元素或屬性值);

如果傳入了引數args,則只把該引數傳給**函式.

633行:isobj表示引數object是陣列還是物件,以決定遍歷方式.

如果length是undefined,則表示是object物件,則isobject為true,

否則就認為是陣列或類陣列物件,isobject為false,將通過下標遍歷.

635~648行和652~664行**看起來相似度很高,指示出發**函式和引數不同,完全考慮把他們合併.那麼**將會大大的減少;我嘗試過合併**,但是合併到一點點發現,對於isobj的判斷量有點大,因此放棄寫出合併後的**.也明白了;jquery這是採取囉嗦的方式來節省空間,避免效能的下降.

667行,返回object,為了支援鏈式語法.

jquery原始碼解析

jquery 原始碼解析,參看 是jquery 3.0版本 入口jquery.js包含core.js,以及jquery的各類功能的組合,包括selector,ajax等等 然後將jquery物件匯出到全域性的jquery符號,以及 符號 確定jquery物件是個函式,這個函式生成出來的資料是物件 建...

jquery原始碼解析1

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

JQuery原始碼解析(一)

寫在前面 本 第一眼看jq的源 或許會感到混亂和沒頭緒,特別是會卡在36行的 那裡遲遲找不到 function window,noglobal typeof window undefined window this,function window,noglobal return factory w ...