首頁 >後端開發 >php教程 >cult of personality jQuery 原始碼分析筆記

cult of personality jQuery 原始碼分析筆記

WBOY
WBOY原創
2016-07-29 08:45:191017瀏覽

jQuery的宗旨是Write Less, Do More。它對JavaScript的開發風格侵入性不如YUI那麼強,當然也不如Dojo和YUI如此龐大。它極大的簡化了JavaScript的日常開發工作,主要是DOM元素的操作(從名字Query就可以看出)。另一個主要工作就是每個前端開發者都需要面對的瀏覽器相容性。 jQuery相容於所有主流瀏覽器的大部分版本,從萬惡的IE6開始直到Firefox,Chrome等現代瀏覽器。除了居於核心的一小部分程式碼之外,剩下的jQuery都是鬆散的函數,擴充性很強。 http://plugins.jquery.com上有成千上萬的jQuery插件,你需要的功能幾乎都有對應的jQuery插件,而且不只一個。
jQuery程式碼的頭部是License聲明。採用了GPLv2和MIT雙協定。而在jQuery聲明下是另一個專案的聲明:Sizzle。這是jQuery作者另外的一個開源項目,在MIT、BSD和GPL下發布。它是一個獨立的selector實作(pure-JavaScript CSS selector engine),可以獨立使用。它的壓縮版本只有3KB多一點,號稱效率最高的選擇器實作。 jQuery從1.3開始使用Sizzle取代了原來的selector實作。
JS程式碼中有大量的()和{},這裡使用的是Vim閱讀,因為%指令可以快速的找到符合的括號。
程式碼總體結構與變數
jQuery的程式碼整體上就是一個匿名函式呼叫:

複製程式碼 程式碼如下:


(function (window, undefined) {
// ...
})(window);


這是為了避免污染全域對象,同時也可以方便的管理執行上下文。這個技巧在JS程式碼中經常見到,在jQuery程式碼中也很常見。例如,在jQuery和其他JS函式庫同時使用時,$符號可能已經被使用了。為了仍使用$符號:

複製程式碼 程式碼如下:


(function ($) {
// $ ("...")... 照常使用$
})(jQuery);


在這裡傳入真正的jQuery物件。
下面進入真正的實作部分,首先是$,也就是jQuery物件的聲明,其中最基本的兩個成員也列出來了:

複製程式碼 程式碼如下:


var jQuery = (function() {
var jQuery = function(selector, context) {
// 真正的初始化函數
return new jQuery.fn.init(selector, context, rootjQuery);
},
// 一大堆變數宣告
// fn是主要的函數實作點,也是jQuery外掛的起點。 JS原型
jQuery.fn = jQuery.prototype = {
};
// 一個擴充物件用的函數,可以動態地往物件上加成員。函數完成的。 >

jQuery對像是核心對象,所有$(...)得到的都是jQuery對象,除了少部分直接實現在jQuery下的Utility函數之外,大部分函數都是用extend方法加到jQuery物件裡的。
以上就介紹了cult of personality jQuery 原始碼分析筆記,包括了cult of personality方面的內容,希望對PHP教程有興趣的朋友有所幫助。


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn