-
任何庫與框架設(shè)計的第一個要點就是解決命名空間與變量污染的問題。jQuery就是利用了JavaScript函數(shù)作用域的特性,采用立即調(diào)用表達式包裹了自身的方法來解決這個問題。查看全部
-
在JavaScript世界中函數(shù)作為“一等公民”,它不僅擁有一切傳統(tǒng)函數(shù)的使用方式(聲明和調(diào)用),而且可以做到像簡單值一樣賦值、傳參、返回,這樣的函數(shù)也稱之為第一級函數(shù)。不僅如此,而且還可以通過操作符new來充當類的構(gòu)造器查看全部
-
組件開發(fā)為了保證組件可以在不同的項目中都適用,其必須是對其常用功能抽象出來加以實現(xiàn),絕不會包含具體的業(yè)務(wù)邏輯而某一特定的項目使用者在其業(yè)務(wù)場景中使用組件時不可避免的要加入不同場景的業(yè)務(wù)邏輯。查看全部
-
瀏覽器從右到左進行解析選擇器 只有在匹配時,才會不斷向上找父節(jié)點進行驗證。 因為匹配的情況遠遠低于不匹配的情況,所以逆向匹配帶來的優(yōu)勢是巨大的查看全部
-
fn與jQuery其實是2個不同的對象,在之前有講解:jQuery.extend 調(diào)用的時候,this是指向jQuery對象的(jQuery是函數(shù),也是對象!),所以這里擴展在jQuery上。而jQuery.fn.extend 調(diào)用的時候,this指向fn對象查看全部
-
方法是共享的,并且實例方法取于靜態(tài)方法,2個構(gòu)造器是完全隔離的 ,這個要如何處理? 看看jQuery給的方案: 畫龍點睛的一處init.prototype = jQuery.fn,把jQuery.prototype原型的引用賦給jQuery.fn.init.prototype的原型,這樣就把2個構(gòu)造器的原型給關(guān)聯(lián)起來了。 ajQuery.fn = ajQuery.prototype = { name: 'aaron', init: function(selector) { this.selector = selector; return this; }, constructor: ajQuery } ajQuery.fn.init.prototype = ajQuery.fn 這段代碼就是整個結(jié)構(gòu)設(shè)計的最核心的東西了,有這樣的一個處理,整個結(jié)構(gòu)就活了!不得不佩服作者的設(shè)計思路,別具匠心。查看全部
-
通過new操作符構(gòu)建一個對象,一般經(jīng)過四步: A.創(chuàng)建一個新對象 B.將構(gòu)造函數(shù)的作用域賦給新對象(所以this就指向了這個新對象) C.執(zhí)行構(gòu)造函數(shù)中的代碼 D.返回這個新對象查看全部
-
ajQuery.prototype.init.prototype = ajQuery.prototype;查看全部
-
無new格式 var $$ = ajQuery = function(selector) { if(!(this instanceof ajQuery)){ return new ajQuery(selector); } this.selector = selector; return this }查看全部
-
如果瀏覽器存在 document.onreadystatechange 事件,當該事件觸發(fā)時,如果 document.readyState=complete 的時候,可視為 DOM 樹已經(jīng)載入。不過,這個事件不太可靠,比如當頁面中存在圖片的時候,可能反而在 onload 事件之后才能觸發(fā),換言之,它只能正確地執(zhí)行于頁面不包含二進制資源或非常少或者被緩存時作為一個備選吧。 針對IE的加載檢測 Diego Perini 在 2007 年的時候,報告了一種檢測 IE 是否加載完成的方式,使用 doScroll 方法調(diào)用,詳情可見http://javascript.nwbox.com/IEContentLoaded/。 原理就是對于 IE 在非 iframe 內(nèi)時,只有不斷地通過能否執(zhí)行 doScroll 判斷 DOM 是否加載完畢。在上述中間隔 50 毫秒嘗試去執(zhí)行 doScroll,注意,由于頁面沒有加載完成的時候,調(diào)用 doScroll 會導(dǎo)致異常,所以使用了 try -catch 來捕獲異常。查看全部
-
DOM文檔的加載步驟 (1) 解析HTML結(jié)構(gòu)。 (2) 加載外部腳本和樣式表文件。 (3) 解析并執(zhí)行腳本代碼。 (4) 構(gòu)造HTML DOM模型。//ready (5) 加載圖片等外部文件。 (6) 頁面加載完畢。//load查看全部
-
工廠模式 jQuery的無new構(gòu)建原理查看全部
-
1、window和undefined都是為了減少變量查找所經(jīng)過的scope作用域。當window通過傳遞給閉包內(nèi)部之后,在閉包內(nèi)部使用它的時候,可以把它當成一個局部變量,顯然比原先在window scope下查找的時候要快一些。 2、undefined也是同樣的道理,其實這個undefined并不是JavaScript數(shù)據(jù)類型的undefined,而是一個普普通通的變量名。只是因為沒給它傳遞值,它的值就是undefined,undefined并不是JavaScript的保留字。查看全部
-
jquery五大塊:選擇器,DOM操作,事件,AJAX,動畫<br> 模塊化,單一職責(zé)SRP,解耦查看全部
-
DOM文檔加載的步驟: 要想理解為什么ready先執(zhí)行,load后執(zhí)行就要先了解下DOM文檔加載的步驟: (1) 解析HTML結(jié)構(gòu)。 (2) 加載外部腳本和樣式表文件。 (3) 解析并執(zhí)行腳本代碼。 (4) 構(gòu)造HTML DOM模型。//ready (5) 加載圖片等外部文件。 (6) 頁面加載完畢。//load查看全部
舉報
0/150
提交
取消