佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > 如何正確閱讀jquery源碼和jquery插件源碼?

如何正確閱讀jquery源碼和jquery插件源碼?

熱門標簽:天津電銷 三亞電銷 梧州電銷 安順電銷 黑龍江電銷 平?jīng)鲭婁N 潛江電銷 廊坊電銷

我剛好這個月在看jquery源碼,目前看了差不多多半了吧;剛開始的時候,看起來確實很吃力,在這,我推薦你可以在百度去搜索jquey源碼,里面有很多詳細說明jquery源碼的博客系列文章,找一個完整版本,跟隨他們一起,慢慢去看,不要心急,也不要被最開始的困難而嚇倒,只要你慢慢去看,后面會越來越順利,而且你會學到很多以前不知道或者很少想到的東西;

上面啰嗦了幾句,在這,先解決樓主問題;如何才能更快的定位函數(shù)的實現(xiàn)代碼;要解決這個問題,首先必須明白jquery對象api的函數(shù)其實分為兩大類,第一類是全局方法,如“$.ajax”、"$.data"、"$.Callbacks"、“$.attr”等;第二類是元素對象上的方法,如"$('#test').attr"、"$('#test').find";而且由上可以發(fā)現(xiàn),可能兩類中有相同方法名的方法,如上面的“$.attr”與"$('#test').attr",如果通過去查找attr的方法,不一定能夠精確定位到;

其實仔細看源碼可以發(fā)現(xiàn),所有全局方法都是通過“jQuery.extend({ })”的方式綁定上去的;如"$.ajax"則通過下圖方式添加的

而第二類元素對象上的方法則通過“jQuery.fn.extend({ })”的方式添加到元素上以供調用的,如下圖;

所以,如果你需要很快的定位一個api方法的源碼位置,你可以直接通過在源碼中搜索需要搜索的方法名,如“attr:”,然后根據(jù)是“jQuery.fn.extend” 還是 “jQuery.extend” 去確定是全局的方法還是元素上的方法,就可以精確定位源碼位置;

還有一種方式,去github上面源碼,克隆下jquery源碼,在其src文件夾里面,有每個大功能對應的文件夾及js代碼,這樣你就可以通過分析方法屬于哪類里面的方法,然后去找對應文件代碼即可,如下圖,如果需要找“$.attr”方法源碼,則只需要看“attributes”文件夾,里面有attr.js;然后在js代碼里面,根據(jù)上面說的方法(根據(jù)是“jQuery.fn.extend” 還是 “jQuery.extend” ),去區(qū)分到底是全局的attr方法還是元素上面的attr方法的源代碼即可;

閱讀jquery源碼確實是一件比較有挑戰(zhàn)的事情,我看了下,相對比較難的是里面對元素查找部分,即sizzle方法,尤其里面使用閉包進行函數(shù)預編譯部分;在這就不深入說明;但是,當你真正的閱讀完了里面的代碼后,一定會讓你收獲頗豐,希望能夠堅持下去;

標簽:廣安 宜賓 連云港 通化 懷化 洛陽 桂林

巨人網(wǎng)絡通訊聲明:本文標題《如何正確閱讀jquery源碼和jquery插件源碼?》,本文關鍵詞  ;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《如何正確閱讀jquery源碼和jquery插件源碼?》相關的同類信息!
  • 本頁收集關于如何正確閱讀jquery源碼和jquery插件源碼?的相關信息資訊供網(wǎng)民參考!
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    永仁县| 贺兰县| 武山县| 博爱县| 洞口县| 长乐市| 鸡西市| 屯留县| 仪陇县| 高州市| 航空| 旬邑县| 县级市| 牡丹江市| 保靖县| 阿勒泰市| 清涧县| 星子县| 泾阳县| 南川市| 镇巴县| 汶川县| 刚察县| 广宗县| 天气| 治多县| 镇巴县| 襄樊市| 大新县| 济宁市| 酉阳| 炎陵县| 太仓市| 和田市| 靖西县| 桦甸市| 东莞市| 云阳县| 黄平县| 若尔盖县| 勐海县|