-
立即調用表達式 任何庫與框架設計的第一個要點就是解決命名空間與變量污染的問題。jQuery就是利用了JavaScript函數作用域的特性,采用立即調用表達式包裹了自身的方法來解決這個問題。 jQuery的立即調用函數表達式的寫法有三種: 寫法1: (function(window, factory) { factory(window) }(this, function() { return function() { //jQuery的調用 } })) 可以看出上面的代碼中嵌套了2個函數,而且把一個函數作為參數傳遞到另一個函數中并且執行,這種方法有點復雜,我們簡化一下寫法: 寫法2: var factory = function(){ return function(){ //執行方法 } } var jQuery = factory(); 上面的代碼效果和方法1是等同的,但是這個factory有點變成了簡單的工廠方法模式,需要自己調用,不像是一個單例的jQuery類,所以我們需要改成“自執行”,而不是另外調用。 寫法3: (function(window, undefined) { var jQuery = function() {} // ... window.jQuery = window.$ = jQuery; })(window);查看全部
-
函數是一個對象,所以javaScript中的函數: 1,能"存儲"在變量中 2,能作為函數的實參被傳遞 3,能在函數中被創建 4,能從函數中被返回查看全部
-
for in 語句對數組對象進行遍歷潛在的bug在于:如果原生Array類被其他的js腳本庫進行了原型擴展(比如多加一個toJSON方法即Array.prototype.toJSON=xxxx),那么用for in遍歷擴展后的Array對象的邏輯將與遍歷原生Array對象的邏輯發生差異查看全部
-
詞法分析器又稱掃描器,詞法分析是指將我們編寫的文本代碼流解析為一個一個的記號,分析得到的記號以供后續語法分析使用查看全部
-
逆向匹配帶來的優勢是巨大的。同時我們也能夠看出,在選擇器結尾加上「*」就大大降低了這種優勢,這也就是很多優化原則提到的盡量避免在選擇器末尾添加通配符的原因。查看全部
-
end()和addBack的區別在于一個返回上一個對象,一個返回對象的集合查看全部
-
jquery對象:context(上下文),length(匹配的長度),prevObject(前一個對象),selector(選擇器名稱),類數組對象查看全部
-
jQuery一共13個模塊: 1.核心方法 2.回調系統 3.異步隊列 4.數據緩存 5.隊列操作 6.選擇器操作 7.屬性操作 8.節點遍歷 9.文檔處理 10.樣式操作 11.事件體系 12.AJAX交互 13.動畫引擎 jQuery按理解分為五大塊:1.選擇器、2.DOM操作、3.事件、4.AJAX、5.動畫 jQuery的設計就是抽出共同的特性使之“模塊化”,更貼近S.O.L.I.D五大原則的“單一職責SRP”,好處是可以讓我們很容易的來維護這個對象,通過“解耦”可以讓每個職責更加有彈性的變化。 jQuery文檔針對業務層的Ajax的處理提供了一系列的門面接口: .ajaxComplete() .ajaxError() .ajaxSend() .ajaxStart() .ajaxStop() .ajaxSuccess() 底層接口: jQuery.ajax() jQuery.ajaxSetup() 快捷方法: jQuery.get() jQuery.getJSON() jQuery.getScript() jQuery.post()查看全部
-
jQuery的一些操作查看全部
-
on() 方法在被選元素及子元素上添加一個或多個事件處理程序。查看全部
-
once: 確保這個回調列表只執行( .fire() )一次(像一個遞延 Deferred)。 ? memory: 保持以前的值,將添加到這個列表的后面的最新的值立即執行調用任何回調 (像一個遞延 Deferred)。 ? unique: 確保一次只能添加一個回調(所以在列表中沒有重復的回調)。 ? stopOnFalse: 當一個回調返回false 時中斷調用。查看全部
-
$.Callbacks()模塊的開發目的是為了給內部$.ajax() 和 $.Deferred()模塊提供統一的基本功能組件。它可以用來作為類似基礎定義的新組件的功能。查看全部
-
在這種模式中,并不是一個對象調用另一個對象的方法,而是一個對象訂閱另一個對象的特定活動并在狀態改變后獲得通知。訂閱者也稱為觀察者,而被觀察的對象稱為發布者或主題。當發生了一個重要的事件時,發布者將會通知(調用)所有訂閱者并且可能經常以事件對象的形式傳遞消息。查看全部
-
觀察者模式 (pub/sub) 的背后,總的想法是在應用程序中增強松耦合性。并非是在其它對象的方法上的單個對象調用。一個對象作為特定任務或是另一對象的活動的觀察者,并且在這個任務或活動發生時,通知觀察者。觀察者也被叫作訂閱者(Subscriber),它指向被觀察的對象,既被觀察者(Publisher 或 subject)。當事件發生時,被觀察者(Publisher)就會通知觀察者(subscriber)。 觀察者的使用場合 觀察者的使用場合就是:當一個對象的改變需要同時改變其它對象,并且它不知道具體有多少對象需要改變的時候,就應該考慮使用觀察者模式。先看官網的demo這個例子,涉及到了 add 與 fire方法,熟悉設計模式的童鞋呢,一眼就能看出,其實又是基于發布訂閱(Publish/Subscribe)的觀察者模式的設計。查看全部
-
所以Callbacks它是一個多用途的回調函數列表對象,提供了一種強大的方法來管理回調函數隊列。查看全部
舉報
0/150
提交
取消