<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    MDA/MDD/TDD/DDD/DDDDDDD
    posts - 536, comments - 111, trackbacks - 0, articles - 0
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    jquery源代碼解讀筆記

    Posted on 2008-06-07 02:39 leekiang 閱讀(4896) 評論(2)  編輯  收藏 所屬分類: jquery(進去而已)

    1,整體結構如下

    ( function ()?{
    // ……
    })();
    第一對括號里是一個匿名函數,第一對括號表示執行該函數。
    注: js的匿名函數模式?? http://www.hedgerwow.com/360/dhtml/js-anonymous-function-patterns.html
    非匿名函數的類似寫法如下
    (?function?test(){alert('test');})();
    所有的jquery代碼都放在該匿名函數里,避免了命名沖突。但有兩個要單獨處理:'jQuery'和'$'

    //?Map?over?jQuery?in?case?of?overwrite
    var?_jQuery?=?window.jQuery,
    //?Map?over?the?$?in?case?of?overwrite
    ????_$?=?window.$;

    var?jQuery?=?window.jQuery?=?window.$?=?function(?selector,?context?)?{
    ????
    //?The?jQuery?object?is?actually?just?the?init?constructor?'enhanced'
    ????return?new?jQuery.fn.init(?selector,?context?);
    };
    noConflict:?function(?deep?)?{
    ????????window.$?
    =?_$;

    ????????
    if?(?deep?)
    ????????????window.jQuery?
    =?_jQuery;

    ????????
    return?jQuery;
    ????},
    假如沒有執行noConflict,則原來定義的$或jQuery(如果定義了的話)會被一個新函數覆蓋,只在內部留一個原來的引用(名叫_$或_jQuery)。
    如果要兼容原來的$,則執行jQuery.noConflict(),然后只能用jQuery的寫法;
    極端情況:"jQuery"也被占用了,又要兼容,那么執行var myJQ =jQuery.noConflict(true),以后全用myJQ的寫法。
    注意:這時jquery.js要放在其他js的后面。
    2,
    ?定義jQuery的構造和原型函數,這個過程同時定義了prototype的別名為fn:jQuery.prototype=jQuery.fn。 jQuery對象的原型prototype包括了諸多的核心方法和屬性:
    init
    jquery 當前的版本號
    size 返回了length屬性
    length
    get
    each
    ...
    定義完了以后必須寫以下代碼,不明白
    //?Give?the?init?function?the?jQuery?prototype?for?later?instantiation(晚初始化?)
    jQuery.fn.init.prototype?=?jQuery.fn;
    http://bbs.blueidea.com/thread-2843388-1-1.html
    jQuery.prototype.init( selector, context )是jQuery對象的一個成員函數,但是在jQuery構造函數中總是會執行這個函數,所以說"它是加強的構造函數(init?constructor?'enhanced')。因為在執行構造函數jQuery 時總是會執行它。 這也是很多框架的典型做法。
    jQuery有3個身份,類,對象,函數(構造函數)。
    如果find是對象的方法,即類似于 jQuery.find=function(){}
    那么就應該使用jQuery.find();

    如果find是類的成員函數,即類似于 jQuery.prototype.find=function(){}
    那么必須通過jQuery()返回jQuery實例,再調用find方法,即jQuery().find()。

    8,jQuery源碼解讀---執行過程分析
    http://hi.baidu.com/zhuguoneng/blog/item/3d07e9d667e9482b06088b4c.html

    評論

    # re: jquery源代碼解讀筆記  回復  更多評論   

    2011-11-24 13:07 by 政治
    政治

    # re: jquery源代碼解讀筆記  回復  更多評論   

    2011-12-14 16:24 by 政治相關
    政治相關
    主站蜘蛛池模板: 中文有码亚洲制服av片| xx视频在线永久免费观看| 午夜免费国产体验区免费的| 国产产在线精品亚洲AAVV| a毛片免费全部播放完整成| 久久精品免费视频观看| 免费可以在线看A∨网站| 全部免费毛片免费播放| 国产亚洲综合网曝门系列| 亚洲网站在线免费观看| 日韩色日韩视频亚洲网站| 成人性做爰aaa片免费看| 18勿入网站免费永久| 亚洲精品成人区在线观看| 亚洲色在线无码国产精品不卡| 亚洲欧美日韩国产精品一区| 午夜亚洲WWW湿好爽| 亚洲日本VA午夜在线影院| 亚洲丰满熟女一区二区v| 亚洲国产精品一区第二页 | 黄页网址大全免费观看12网站| 少妇亚洲免费精品| 国产美女在线精品免费观看| 国产亚洲?V无码?V男人的天堂| 久久精品国产亚洲αv忘忧草| 任你躁在线精品免费| 免费人成视频在线观看视频| 亚洲男人的天堂在线| 中文字幕久精品免费视频| 日本不卡免费新一二三区| 亚洲色av性色在线观无码| 久久精品免费观看国产| www.亚洲色图| 亚洲AV无码专区在线厂| AV免费网址在线观看| 亚洲最大福利视频| 成人黄动漫画免费网站视频 | 日韩在线播放全免费| 亚洲综合久久综合激情久久| 黄页免费在线观看| 亚洲毛片基地日韩毛片基地|