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

為了賬號安全,請及時綁定郵箱和手機立即綁定
  • 理解觀察者模式:發布訂閱(Publish/Subscribe)


    觀察者的使用場合就是:當一個對象的改變需要同時改變其它對象,并且它不知道具體有多少對象需要改變的時候,就應該考慮使用觀察者模式。


    JS里對觀察者模式的實現是通過回調來實現的,作為 $.Callbacks() 的創建組件的一個演示,只使用回調函數列表,就可以實現 Pub/Sub 系統,將 $.Callbacks 作為一個隊列。

    查看全部
  • 使用回調函數,總的來說弱化耦合,讓調用者與被調用者分開。

    調用者不關心誰是被調用者,所有它需知道的,只是存在一個具有某種特定原型、某些限制條件的被調用函數

    查看全部
  • 函數本質:簡單的理解函數本質上就是輸入和輸出之間實現過程的映射


    理解JS中的函數:

    1、能“存儲”在變量中

    2、能作為函數的實參被傳遞

    3、能在函數中被創建

    4、能從函數中返回


    理解JS中的回調函數:

    1、使用回調函數方便異步處理,例如AJAX

    2、要求執行某些操作后執行回調函數

    查看全部
    0 采集 收起 來源:理解回調函數

    2022-08-08

  • $.each()函數和$(selector).each()是不一樣的,后者是專門用來遍歷一個jQuery對象的,是為jQuery內部服務的。


    $.each()函數可用于迭代任何集合,無論是“名/值”對象(JavaScript對象)或數組。


    jQuery的實例方法最終也是調用的靜態方法。

    查看全部
  • 迭代器設計:迭代器是一個框架的重要設計。我們經常需要提供一種方法順序用來處理聚合對象中各個元素,而又不暴露該對象的內部,這也是設計模式中的迭代器模式(Iterator)

    查看全部
    0 采集 收起 來源:迭代器

    2022-08-08

  • 通過eq方法只能產生一個新的對象,但是如果需要的是一個合集對象要怎么處理:

    使用.slice( start [, end ] )

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

    2022-08-08

  • get與eq的區別:

    eq返回的是一個jQuery對象,get返回的是一個DOM對象

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

    2022-08-08

  • end與addBack的鏈式屬性:

    新jQuery對象添加prevObject屬性,我們看到prevObject其實還是當前jQuery的一個引用罷了,所以也就是為什么通過prevObject能取到上一個合集的原因了

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

    2022-08-08

  • 回溯處理的設計:

    1、.end():可以回溯到之前的Dom元素集合,prevObject

    2、.addBack():調用它會在棧中回溯一個位置,然后把兩個位置上的元素集組合起來,并把這個新的、組合之后的元素集推入棧的上方。


    利用這個DOM元素??梢詼p少重復的查詢和遍歷的操作,而減少重復操作也正是優化jQuery代碼性能的關鍵所在。

    查看全部
  • 插件接口的設計:接口自定義擴展

    jQuery.extend({
    ????data:function(){},
    ????removeData:function(){}
    })
    
    jQuery.fn.extend({
    ????data:function(){},
    ????removeData:function(){}
    })
    查看全部
  • jQuery.extend( object ) 表示將object合并至jQuery上

    jQuery.extend( target, object1, object2) 表示將object1, object2合并至target上


    這也是target如下設置的原因

    ?var?target?=?arguments[0]?||?{},
    ?????i?=?1,
    ?????length?=?arguments.length;
    
    //只有一個參數,就是對jQuery自身的擴展處理
    if?(i?===?length)?{????????
    ????target?=?this;?//調用的上下文對象jQuery/或者實例
    ????i--;
    }
    查看全部
  • jQuery的Internal DSL形式帶來的好處

    1、編寫代碼時,讓代碼更貼近作者的思維模式;

    2、閱讀代碼時,讓讀者更容易理解代碼的含義;

    3、應用DSL可以有效的提高系統的可維護性(縮小了實現模型和領域模型的距離,提高了實現的可讀性)和靈活性,并且提供開發的效率


    jQuery的這種管道風格的DSL鏈式代碼,總的來說:

    1、節約JS代碼;

    2、所返回的都是同一個對象,可以提高代碼的效率。


    通過簡單擴展原型方法并通過return this的形式來實現跨瀏覽器的鏈式調用。


    但是這種方法有一個問題是:所有對象的方法返回的都是對象本身,也就是說沒有返回值,所以這種方法不一定在任何環境下都適合

    查看全部
  • DSL是指Domain Specific Language,也就是用于描述和解決特定領域問題的語言

    DSL分為內部DSL和外部DSL。

    jQuery屬于內部DSL。外部DSL需要編寫解析器。

    查看全部
  • 靜態與實例方法共享設計:實例方法取于靜態方法

    function?jQuery()?{...}
    
    jQuery.each?=?function(){...}
    
    jQuery.prototype?=?{
    ????each:?function(?callback,?args?)?{
    ????????return?jQuery.each(?this,?callback,?args?);
    ????}
    }
    查看全部
  • jQuery分離構造器

    - 不使用new 構造對象

    - 為了避免死循環,將jQuery原型上的init方法作為構造函數,init中的this完全引用不到jQuery的原型,所以這里通過new把init方法與ajQuery給分離成2個獨立的構造器

    - 為什么init一定要放在jQuery原型上,單獨寫不好嗎?

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

    2022-08-07

舉報

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

微信掃碼,參與3人拼團

微信客服

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

幫助反饋 APP下載

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

公眾號

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

友情提示:

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