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

為了賬號安全,請及時綁定郵箱和手機立即綁定
  • 鏈式調用 應改是在一個原型上寫多個方法
    查看全部
  • new 操作符把圓形臉跟實例的this關聯,這樣可以通過實例可以傳值到原型鏈
    查看全部
    0 采集 收起 來源:分離構造器

    2016-04-15

  • DOMContentLoaded 是在構造HTML DOM模型完畢,load 是在頁面加載完畢
    查看全部
  • instanceof 判斷左側的對象是否是右側類的實例;這樣this就是指向aQuery這個實例對象
    查看全部
  • jquery咋學
    查看全部
    0 采集 收起 來源:jQuery課程簡介

    2016-04-13

  • Query.Callbacks還提供“once memory”等參數用來處理: ?? ?? once: 確保這個回調列表只執行( .fire() )一次(像一個遞延 Deferred)。 ?? ?? memory: 保持以前的值,將添加到這個列表的后面的最新的值立即執行調用任何回調 (像一個遞延 Deferred)。 ?? ?? unique: 確保一次只能添加一個回調(所以在列表中沒有重復的回調)。 ?? ?? stopOnFalse: 當一個回調返回false 時中斷調用。
    查看全部
    0 采集 收起 來源:jQuery回調對象

    2016-04-09

  • 、一個回調函數作為參數傳遞給另一個函數是,我們僅僅傳遞了函數定義。我們并沒有在參數中執行函數。我們并不傳遞像我們平時執行函數一樣帶有一對執行小括號()的函數 2、回調函數并不會馬上被執行,它會在包含它的函數內的某個特定時間點被“回調”
    查看全部
    0 采集 收起 來源:理解回調函數

    2016-04-09

  • for in 語句對數組對象進行遍歷潛在的bug在于:如果原生Array類被其他的js腳本庫進行了原型擴展(比如多加一個toJSON方法即Array.prototype.toJSON=xxxx),那么用for in遍歷擴展后的Array對象的邏輯將與遍歷原生Array對象的邏輯發生差異
    查看全部
  • get與eq的區別<br> .eq() 減少匹配元素的集合,根據index索引值,精確指定索引對象。<br> .get() 通過檢索匹配jQuery對象得到對應的DOM元素。<br> 同樣是返回元素,那么eq與get有什么區別呢?<br> <br> eq返回的是一個jQuery對象,get返回的是一個DOM對象。舉個例子:<br> <br> $( "li" ).get( 0 ).css("color", "red"); //錯誤<br> $( "li" ).eq( 0 ).css("color", "red"); //正確<br> get方法本質上是把jQuery對象轉換成DOM對象,但是css屬于jQuery構造器的,DOM是不存在這個方法的,如果需要用jQuery的方法,我們必須這樣寫:<br> <br> var li = $( "li" ).get( 0 );<br> $( li ).css("color", "red"); //用$包裝<br> 取出DOM對象li,然后用$再次包裝,使之轉變成jQuery對象,才能調用css方法,這樣要分2步寫太麻煩了,所以jQuery給我們提供了一個便捷方法eq()。 Query的考慮很周到,通過eq方法只能產生一個新的對象,但是如果需要的是一個合集對象要怎么處理?因此jQuery便提供了一個slice方法: 語法: .slice( start [, end ] ) 作用: 根據指定的下標范圍,過濾匹配的元素集合,并生成一個新的 jQuery 對象。 因為是數組對象,意味著我們可以用silce來直接取值了,所以針對合集對象我們可以這樣寫代碼: var arr = [] arr.push( this.slice(start[,end]) ) this.pushStack(arr) 這個this指的是jQuery對象,因為jQuery對象是數組集合,所以我們可以通過原生的silce方法直接取到集合數,然后通過包裝處理即可了。
    查看全部
    0 采集 收起 來源:get與eq的區別

    2018-03-22

  • 通過調用的上下文,我們來確定這個方法是作為靜態還是實例處理,在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個擴展函數。
    查看全部
  • jQuery的核心理念是Write less,Do more(寫的更少,做的更多),那么鏈式方法的設計與這個核心理念不謀而合。那么從深層次考慮這種設計其實就是一種Internal DSL。 DSL是指Domain Specific Language,也就是用于描述和解決特定領域問題的語言。 jQuery的Internal DSL形式帶來的好處——編寫代碼時,讓代碼更貼近作者的思維模式;閱讀代碼時,讓讀者更容易理解代碼的含義;應用DSL可以有效的提高系統的可維護性(縮小了實現模型和領域模型的距離,提高了實現的可讀性)和靈活性,并且提供開發的效率。 jQuery的這種管道風格的DSL鏈式代碼,總的來說: ? ?? 節約JS代碼; ? ?? 所返回的都是同一個對象,可以提高代碼的效率。 通過簡單擴展原型方法并通過return this的形式來實現跨瀏覽器的鏈式調用。利用JS下的簡單工廠方法模式,來將所有對于同一個DOM對象的操作指定同一個實例。
    查看全部
  • Query通過new原型prototype上的init方法當作構造器,那么init的原型鏈方法就是實例的方法了,所以jQuery通過2個構造器劃分2種不同的調用方式一種是靜態,一種是原型。 方法是共享的,并且實例方法取于靜態方法,2個構造器是完全隔離的 ,這個要如何處理? 看看jQuery給的方案: 畫龍點睛的一處init.prototype = jQuery.fn,把jQuery.prototype原型的引用賦給jQuery.fn.init.prototype的原型,這樣就把2個構造器的原型給關聯起來了。
    查看全部
  • 引入jQuery運行這個noConflict函數將變量$的控制權讓給第一個實現它的那個庫,確保jQuery不會與其他庫的$對象發生沖突。 在運行這個函數后,就只能使用jQuery變量訪問jQuery對象。例如,在要用到$("aaron")的地方,就必須換成jQuery("aaron"),因為$的控制權已經讓出去了。 使用DEMO: jQuery.noConflict(); // 使用 jQuery jQuery("aaron").show(); // 使用其他庫的 $() $("aaron").style.display = ‘block’; ?? 這個函數必須在你導入jQuery文件之后,并且在導入另一個導致沖突的庫之前使用。當然也應當在其他沖突的庫被使用之前,除非jQuery是最后一個導入的。
    查看全部
  • DOM文檔加載的步驟: 要想理解為什么ready先執行,load后執行就要先了解下DOM文檔加載的步驟: (1) 解析HTML結構。 (2) 加載外部腳本和樣式表文件。 (3) 解析并執行腳本代碼。 (4) 構造HTML DOM模型。//ready (5) 加載圖片等外部文件。 (6) 頁面加載完畢。//load 故ready先執行load后執行
    查看全部
  • jQuery的入口都是統一的$, 通過傳遞參數的不同,實現了9種方法的重載: 1. jQuery([selector,[context]]) 2. jQuery(element) 3. jQuery(elementArray) 4. jQuery(object) 5. jQuery(jQuery object) 6. jQuery(html,[ownerDocument]) 7. jQuery(html,[attributes]) 8. jQuery() 9. jQuery(callback) jQuery的無new構建原理 函數aQuery()內部首先保證了必須是通過new操作符構建。這樣就能保證當前構建的是一個帶有this的實例對象,既然是對象我們可以把所有的屬性與方法作為對象的key與value的方式給映射到this上,所以如上結構就可以模擬出jQuery的這樣的操作了,即可通過索引取值,也可以鏈式方法取值,但是這樣的結構是有很大的缺陷的,每次調用ajQuery方法等于是創建了一個新的實例,那么類似get方法就要在每一個實例上重新創建一遍,性能就大打折扣,所以jQuery在結構上的優化不僅僅只是我們看到的,除了實現類數組結構、方法的原型共享,而且還實現方法的靜態與實例的共存,這是我們之后將會重點分析的。
    查看全部

舉報

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

微信掃碼,參與3人拼團

微信客服

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

幫助反饋 APP下載

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

公眾號

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

友情提示:

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