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