<delect id="sj01t"></delect>
  1. <em id="sj01t"><label id="sj01t"></label></em>
  2. <div id="sj01t"></div>
    1. <em id="sj01t"></em>

            <div id="sj01t"></div>

            jQuery 源碼分析筆記小結

            時間:2024-07-26 14:29:52 jQuery 我要投稿
            • 相關推薦

            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 源碼分析筆記小結

              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對象里的。

            【jQuery 源碼分析筆記小結】相關文章:

            jQuery 源碼分析和Ready函數06-28

            jQuery的DOM操作筆記07-29

            jQuery程序設計08-05

            jquery提交按鈕的代碼07-28

            淺析jQuery 遍歷函數javascript08-06

            jQuery中prev()方法用法07-16

            jQuery中replaceAll()方法用法10-15

            如何理解jquery事件冒泡09-15

            GRE考試閱讀技巧分析筆記10-10

            jQuery中parent()和siblings()的問題10-16

            <delect id="sj01t"></delect>
            1. <em id="sj01t"><label id="sj01t"></label></em>
            2. <div id="sj01t"></div>
              1. <em id="sj01t"></em>

                      <div id="sj01t"></div>
                      黄色视频在线观看