• <sub id="h4knl"><ol id="h4knl"></ol></sub>
    <sup id="h4knl"></sup>
      <sub id="h4knl"></sub>

      <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
      1. <strong id="h4knl"></strong>

      2. jQuery 源碼分析筆記小結(jié)

        時(shí)間:2024-07-26 14:29:52 jQuery 我要投稿
        • 相關(guān)推薦

        jQuery 源碼分析筆記小結(jié)

          jQuery的宗旨是Write Less, Do More。它對(duì)JavaScript的開發(fā)風(fēng)格侵入性不如YUI那么強(qiáng),當(dāng)然也不如Dojo和YUI如此龐大。它極大的簡(jiǎn)化了JavaScript的日常開發(fā)工作,主要是DOM元素的操作(從名字Query就可以看出)。另外一個(gè)主要工作就是每個(gè)前端開發(fā)者都需要面對(duì)的瀏覽器兼容性。jQuery兼容所有主流瀏覽器的大部分版本,從萬惡的IE6開始直到Firefox,Chrome等現(xiàn)代瀏覽器。除了居于核心的一小部分代碼之外,剩下的jQuery都是松散的函數(shù),擴(kuò)展性很強(qiáng)。http://plugins.jquery.com上有成千上萬的jQuery插件,你需要的功能幾乎都有對(duì)應(yīng)的jQuery插件,而且不止一個(gè)。

        jQuery 源碼分析筆記小結(jié)

          jQuery代碼的頭部是License聲明。采用了GPLv2和MIT雙協(xié)議。而在jQuery聲明下是另一個(gè)項(xiàng)目的聲明:Sizzle。這是jQuery作者另外的一個(gè)開源項(xiàng)目,在MIT、BSD和GPL下發(fā)布。它是一個(gè)獨(dú)立的selector實(shí)現(xiàn)(pure-JavaScript CSS selector engine),可以獨(dú)立使用。它的壓縮版本只有3KB多一點(diǎn),號(hào)稱效率最高的選擇器實(shí)現(xiàn)。jQuery從1.3開始使用Sizzle代替了原來的selector實(shí)現(xiàn)。

          JS代碼中有大量的()和{},這里使用的是Vim閱讀,因?yàn)?命令可以快速的找到匹配的括號(hào)。

          代碼總體結(jié)構(gòu)和變量

          jQuery的代碼整體上就是一個(gè)匿名函數(shù)調(diào)用:

          復(fù)制代碼 代碼如下:

          (function (window, undefined) {

          // ...

          })(window);

          這是為了避免污染全局對(duì)象,同時(shí)也可以方便的管理執(zhí)行上下文。這個(gè)技巧在JS代碼中經(jīng)常見到,在jQuery代碼中也很常見。比如,在jQuery和其他JS庫(kù)同時(shí)使用時(shí),$符號(hào)可能已經(jīng)被使用了。為了仍然使用$符號(hào):

          復(fù)制代碼 代碼如下:

          (function ($) {

          // $("...")... 照常使用$

          })(jQuery);

          在這里傳入真正的jQuery對(duì)象。

          下面進(jìn)入真正的實(shí)現(xiàn)部分,首先是$,也就是jQuery對(duì)象的聲明,其中最基本的兩個(gè)成員也列出來了:

          復(fù)制代碼 代碼如下:

          var jQuery = (function() {

          var jQuery = function(selector, context) {

          // 真正的初始化函數(shù)

          return new jQuery.fn.init(selector, context, rootjQuery);

          },

          // 一大堆變量聲明

          // fn是主要的函數(shù)實(shí)現(xiàn)點(diǎn),也是jQuery插件的起點(diǎn)。實(shí)際上就是JS原型

          jQuery.fn = jQuery.prototype = {

          };

          // 一個(gè)擴(kuò)展對(duì)象用的函數(shù),可以動(dòng)態(tài)地往對(duì)象上加成員。以后往jQuery里面加成員都是用extend函數(shù)完成的。

          jQuery.extend = jQuery.fn.extend = function() {

          };

          // ...

          return jQuery;

          })();

          jQuery對(duì)象是核心對(duì)象,所有$(...)得到的都是jQuery對(duì)象,除了少部分直接實(shí)現(xiàn)在jQuery下的Utility函數(shù)之外,大部分函數(shù)都是用extend方法加到j(luò)Query對(duì)象里的。

        【jQuery 源碼分析筆記小結(jié)】相關(guān)文章:

        jQuery 源碼分析和Ready函數(shù)06-28

        jQuery的DOM操作筆記07-29

        jQuery程序設(shè)計(jì)08-05

        jquery提交按鈕的代碼07-28

        淺析jQuery 遍歷函數(shù)javascript08-06

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

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

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

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

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

        国产高潮无套免费视频_久久九九兔免费精品6_99精品热6080YY久久_国产91久久久久久无码
      3. <sub id="h4knl"><ol id="h4knl"></ol></sub>
        <sup id="h4knl"></sup>
          <sub id="h4knl"></sub>

          <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
          1. <strong id="h4knl"></strong>

          2. 日本中文一二区有码在线 | 一级a一级a国产爰片免费免免 | 最新理论片在线观看免费 | 中文字幕国产原创 | 日本激情视频一区二区三区 | 日本亚洲欧美在线视 |