jQuery1.3.2源碼學習6:size 和 get 函數
來源:程序員人生 發布時間:2014-02-27 20:16:57 閱讀次數:3415次
96 // Start with an empty selector
97 selector: "",
98
99 // The current version of jQuery being used
100 jquery: "1.3.2",
101
102 // The number of elements contained in the matched element set
103 size: function() {
104 return this.length;
105 },
106
107 // Get the Nth element in the matched element set OR
108 // Get the whole matched element set as a clean array
109 get: function( num ) {
110 return num === undefined ?
111
112 // Return a 'clean' array
113 Array.prototype.slice.call( this ) :
114
115 // Return just the object
116 this[ num ];
117 },
從 97 行開始,一直到 538 行,定義了 jQuery 對象所共享的方法和屬性。
97 行在對象上定義了一個屬性 selector,用來表示當前使用的選擇器
110 行在對象上定義了一個屬性 jquery,表示當前的 jQuery 版本
103 行定義了 jQuery 對象的 size 方法,由于 jQuery 對象就是一個仿數組的對象,所以直接返回對象的 length 屬性,就是查詢結果中的對象數量。
109 行到 117 行,定義了 get 方法,用來返回指定下標的查詢對象。
其中 110 行用來判斷是否傳遞了下標參數,如果傳遞了下標參數,那么參數 num 就不等于 undefined,注意,這里使用了 === 用來判斷是否完全相等。
如果傳遞了參數,那么在 116 行通過屬性索引器 [] 來獲取指定下標的對象。
如果沒有傳遞參數,那么使用第 113 行處理。
113 行首先通過 Array.prototype 找到 Array 的原型對象,因為數組的方法都是通過這個原型對象提供的。然后,調用這個原型對象上的 slice 方法,調用這個方法的時候還使用了 call,用來將第一個參數作為方法的 this 參數傳入,也就是取得當前查詢結果對象上,數組的 slice 可以傳遞兩個參數,第一個參數表示起始下標,第二個參數表示結束下標,如果兩個都沒有提供,那么起始下標就是 0, 結束下標就是 length。Slice 將返回從起始下標到結束下標 – 1 的所有屬性,并將結果封裝為一個新的真正的數組對象。
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈