亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
  • 在jQuery的官方文檔中,提示用戶這jQuery.data()是一個低級的方法,應該用.data()方法來代替。$.data( element, key, value )可以對DOM元素附加任何類型的數據,但應避免循環引用而導致的內存泄漏問題。


    這里有疑問:

    $().data()是直接關聯到dom上的,為什么說比$.data更好呢?

    查看全部
    • 第一組,通過$().data()的方式,只取到最后一個a值,之前的被覆蓋

    • 2222

    • 2222


    • 第二組,通過$.data的方式,取到2組b值,未覆蓋

    • 1111

    • 2222


    查看全部
  • .eq()??減少匹配元素的集合,根據index索引值,精確指定索引對象。
    .get()?通過檢索匹配jQuery對象得到對應的DOM元素。




    .slice(?start?[,?end?]?)

    作用:

    根據指定的下標范圍,過濾匹配的元素集合,并生成一個新的 jQuery 對象。



    this.pushStack


    查看全部
    0 采集 收起 來源:get與eq的區別

    2020-04-28

  • [].slice.call({ 'a': 'a', 'b': 'b', length: 2 })

    (2) [empty × 2]

    [].slice.call({ 1: 'a', 2: 'b', length: 2 })

    (2) [empty, "a"]

    [].slice.call({ 0: 'a', 1: 'b', length: 2 })

    (2) ["a", "b"]

    將類似數組的對象轉為真正的數組

    查看全部
  • var a = [1,2,{a:12}];

    var b = [{a:12},4];

    var arr = $.merge( a, b );


    1. 0:?1

    2. 1:?2

    3. 2:?{a:?12}

    4. 3:?{a:?12}

    5. 4:?4

    參數只能是數組,合并不會覆蓋

    查看全部
    0 采集 收起 來源:end與addBack

    2020-04-28

  • $("#cnblogs_post_body").find(".cnblogs_code").find("img").end()表示:

    $("#cnblogs_post_body").find(".cnblogs_code")



    $("#cnblogs_post_body").find(".cnblogs_code").find("img").addBack()表示:

    $("#cnblogs_post_body").find(".cnblogs_code").find("img") +?$("#cnblogs_post_body").find(".cnblogs_code")


    查看全部
  • 這里有一個設計的重點,通過調用的上下文,我們來確定這個方法是作為靜態還是實例處理,在javascript的世界中一共有四種上下文調用方式:方法調用模式、函數調用模式、構造器調用模式、apply調用模式:

    ??????jQuery.extend調用的時候上下文指向的是jQuery構造器??????jQuery.fn.extend調用的時候上下文指向的是jQuery構造器的實例對象了

    ??????? 通過extend()函數可以方便快速的擴展功能,不會破壞jQuery的原型結構,jQuery.extend = jQuery.fn.extend = function(){...}; 這個是連等,也就是2個指向同一個函數,怎么會實現不同的功能呢?這就是this力量了!

    ??????? fn與jQuery其實是2個不同的對象,在之前有講解:jQuery.extend 調用的時候,this是指向jQuery對象的(jQuery是函數,也是對象!),所以這里擴展在jQuery上。而jQuery.fn.extend 調用的時候,this指向fn對象,jQuery.fn 和jQuery.prototype指向同一對象,擴展fn就是擴展jQuery.prototype原型對象。這里增加的是原型方法,也就是對象方法了。所以jQuery的API中提供了以上2個擴展函數。


    查看全部
  • var aQuery = function(selector) {

    ? ? //強制為對象

    if (!(this instanceof aQuery)) {

    return new aQuery(selector);

    }

    var elem = document.getElementById(/[^#].*/.exec(selector)[0]);

    this.length = 1;

    this[0] = elem;

    this.context = document;

    this.selector = selector;

    this.get = function(num) {

    return this[num];

    }

    return this;

    }


    查看全部
  • (function(window,?undefined)?{
    ????var?jQuery?=?function()?{}
    ????//?...
    ????window.jQuery?=?window.$?=?jQuery;
    })(window);

    從上面的代碼可看出,自動初始化這個函數,讓其只構建一次。詳細說一下這種寫法的優勢:

    ??1、window和undefined都是為了減少變量查找所經過的scope作用域。當window通過傳遞給閉包內部之后,在閉包內部使用它的時候,可以把它當成一個局部變量,顯然比原先在window scope下查找的時候要快一些。
    ??2、undefined也是同樣的道理,其實這個undefined并不是JavaScript數據類型的undefined,而是一個普普通通的變量名。只是因為沒給它傳遞值,它的值就是undefined,undefined并不是JavaScript的保留字。



    為什么要傳遞undefined?

    Javascript?中的?undefined?并不是作為關鍵字,因此可以允許用戶對其賦值。




    總結:全局變量是魔鬼,?匿名函數可以有效的保證在頁面上寫入JavaScript,而不會造成全局變量的污染,通過小括號,讓其加載的時候立即初始化,這樣就形成了一個單例模式的效果從而只會執行一次。

    查看全部
  • 重要
    查看全部
    0 采集 收起 來源:內存泄露

    2020-01-16

  • ?
    查看全部
    0 采集 收起 來源:jQuery整體架構

    2020-01-12

  • 爸比
    查看全部
    0 采集 收起 來源:對象的構建

    2020-01-08

  • .end()回溯

    查看全部
  • this?

    查看全部
    0 采集 收起 來源:分離構造器

    2019-10-15

  • JQuery的立即調用表達式有三種
    查看全部

舉報

0/150
提交
取消
課程須知
源碼的閱讀不是一蹴而就的,需要大家有一定的功底,比如jQuery的基礎運用以及API的熟悉度,除此之外要有牢固的javascript、DOM、CSS的基礎功底,甚至還需要理解常見的設計模式、數據結構等等。當然大家也不要被這些給嚇住了,理解,總是需要一種慢慢的學習過程。
老師告訴你能學到什么?
通過本課程的學習,您可以由淺入深地剖析jQuery庫的設計與實現。 其中我們圍繞的重心: 1、設計理念 2、結構組織 3、接口設計 4、模式運用 5、場景套用

微信掃碼,參與3人拼團

微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復購買,感謝您對慕課網的支持!