激情欧美日韩一区二区,浪货撅高贱屁股求主人调教视频,精品无码成人片一区二区98,国产高清av在线播放,色翁荡息又大又硬又粗视频

jQuery 源碼分析筆記小結

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

jQuery 源碼分析筆記小結

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

jQuery 源碼分析筆記小結

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

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

  代碼總體結構和變量

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

  復制代碼 代碼如下:

  (function (window, undefined) {

  // ...

  })(window);

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

  復制代碼 代碼如下:

  (function ($) {

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

  })(jQuery);

  在這里傳入真正的jQuery對象。

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

  復制代碼 代碼如下:

  var jQuery = (function() {

  var jQuery = function(selector, context) {

  // 真正的初始化函數

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

  },

  // 一大堆變量聲明

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

  jQuery.fn = jQuery.prototype = {

  };

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

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

  };

  // ...

  return jQuery;

  })();

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

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

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()的問(wèn)題10-16

激情欧美日韩一区二区,浪货撅高贱屁股求主人调教视频,精品无码成人片一区二区98,国产高清av在线播放,色翁荡息又大又硬又粗视频