中文字幕日韩一区二区_国产一区二区av_国产毛片av_久久久久国产一区_色婷婷电影_国产一区二区精品

jQuery 源碼分析筆記

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里面加成員都是用extend函數完成的。
jQuery.extend = jQuery.fn.extend = function() {
};
// ...
return jQuery;
})();

jQuery對象是核心對象,所有$(...)得到的都是jQuery對象,除了少部分直接實現在jQuery下的Utility函數之外,大部分函數都是用extend方法加到jQuery對象里的。

php技術jQuery 源碼分析筆記,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 在线不卡 | 久草网址| 中文字幕亚洲一区二区三区 | 91精品国产91久久综合桃花 | 亚洲精品一二三区 | 青青草在线视频免费观看 | 色视频在线免费观看 | 成人在线视频观看 | 久久伊 | 欧美精品一区二区三区在线 | 99精品免费在线观看 | 欧美日韩福利 | 日本激情一区二区 | 欧美日韩综合一区 | 亚洲精品综合 | 国外成人在线视频网站 | 日韩欧美一区二区三区四区 | 91免费观看视频 | 精品国产一区二区三区观看不卡 | 精品成人佐山爱一区二区 | 午夜视频在线 | 亚洲一区二区三区在线播放 | 亚洲福利| 欧美一区二区三区精品免费 | 91影库| 欧美精品日韩 | 久久蜜桃精品 | 久久亚洲综合 | 一级特黄网站 | 亚洲精品在线看 | 亚洲视频欧美视频 | 免费av直接看 | 久久国产精品一区 | 黄瓜av| 精彩视频一区二区三区 | 国产精品99久久久久久久久 | 亚洲精品乱码久久久久久9色 | 玖玖综合在线 | 久久久久久成人 | 国内久久 | 久久久久久久久久久久久九 |