-
jQuery使用()將匿名函數括起來,然后后面再加一對小括號(包含參數列表),那么這小括號能把我們的表達式組合分塊,并且每一塊(也就是每一對小括號),都有一個返回值。這個返回值實際上也就是小括號中表達式的返回值。所以,當我們用一對小括號把匿名函數括起來的時候,實際上小括號返回的,就是一個匿名函數的Function對象。因此,小括號對加上匿名函數就如同有名字的函數般被我們取得它的引用位置了。所以如果在這個引用變量后面再加上參數列表,就會實現普通函數的調用形式。 匿名函數可以有效的保證在頁面上寫入JavaScript,而不會造成全局變量的污染,通過小括號,讓其加載的時候立即初始化,這樣就形成了一個單例模式的效果從而只會執行一次。查看全部
-
jQuery使用()將匿名函數括起來,然后后面再加一對小括號(包含參數列表),那么這小括號能把我們的表達式組合分塊,并且每一塊(也就是每一對小括號),都有一個返回值。這個返回值實際上也就是小括號中表達式的返回值。所以,當我們用一對小括號把匿名函數括起來的時候,實際上小括號返回的,就是一個匿名函數的Function對象。因此,小括號對加上匿名函數就如同有名字的函數般被我們取得它的引用位置了。所以如果在這個引用變量后面再加上參數列表,就會實現普通函數的調用形式。 匿名函數可以有效的保證在頁面上寫入JavaScript,而不會造成全局變量的污染,通過小括號,讓其加載的時候立即初始化,這樣就形成了一個單例模式的效果從而只會執行一次。查看全部
-
需要返回重新閱讀理解的查看全部
-
jQuery按我的理解分為五大塊,選擇器、DOM操作、事件、AJAX與動畫,那么為什么有13個模塊?因為jQuery的設計中最喜歡的做的一件事,就是抽出共同的特性使之“模塊化”,當然也是更貼近S.O.L.I.D五大原則的“單一職責SRP”了,遵守單一職責的好處是可以讓我們很容易地來維護這個對象,比如,當一個對象封裝了很多職責的時候,一旦一個職責需要修改,勢必會影響該對象的其它職責代碼。通過解耦可以讓每個職責更加有彈性地變化。查看全部
-
»:表示 ? 位運算符查看全部
-
// 類二new產生的a、b、c三個實例對象共享了原型的sayName方法 function ajQuery() { this.name = 'jQuery' } ajQuery.prototype = { sayName: function() { return this.name } } var a = new ajQuery() var b = new ajQuery() var c = new ajQuery()查看全部
-
function oClick2(){ try{ ajQuery2(); }catch(e){ show('oClick2,ajQuery2會報錯,未定義,命名函數表達式不會預先提升') } var ajQuery2 = function(){ show('ajQuery2') } ajQuery2(); }查看全部
-
each: function(obj, callback, args) { var value, i = 0, length = obj.length, isArray = isArraylike(obj); if (args) { if (isArray) { for (; i < length; i++) { value = callback.apply(obj[i], args); if (value === false) { break; } } } else { for (i in obj) { value = callback.apply(obj[i], args); if (value === false) { break; } } } 實現原理幾乎一致,只是增加了對于參數的判斷。對象用for in遍歷,數組用for遍歷。 jQuery可以是多個合集數組DOM,所以在處理的時候經常就針對每一個DOM都要單獨處理,所以一般都需要調用this.each 方法,如下代碼: dequeue: function( type ) { return this.each(function() { jQuery.dequeue( this, type ); }); },查看全部
-
fn與jQuery其實是2個不同的對象,在之前有講解:jQuery.extend 調用的時候,this是指向jQuery對象的(jQuery是函數,也是對象!),所以這里擴展在jQuery上。而jQuery.fn.extend 調用的時候,this指向fn對象,jQuery.fn 和jQuery.prototype指向同一對象,擴展fn就是擴展jQuery.prototype原型對象。這里增加的是原型方法,也就是對象方法了。所以jQuery的API中提供了以上2個擴展函數。查看全部
-
所以我們如果需要鏈式的處理,只需要在方法內部方法當前的這個實例對象this就可以了,因為返回當前實例的this,從而又可以訪問自己的原型了,這樣的就節省代碼量,提高代碼的效率,代碼看起來更優雅。但是這種方法有一個問題是:所有對象的方法返回的都是對象本身,也就是說沒有返回值,所以這種方法不一定在任何環境下都適合。查看全部
-
通過new操作符構建一個對象,一般經過四步: A.創建一個新對象 B.將構造函數的作用域賦給新對象(所以this就指向了這個新對象) C.執行構造函數中的代碼 D.返回這個新對象 最后一點就說明了,我們只要返回一個新對象即可查看全部
-
看了很久,邏輯是這樣的: 首先在<head></head>中加入腳本,比如說是prototype.js和jquery.js 1.在導入jquery.js的時候,將prototype.js中的$進行保存,var _$ = window.$; 2.jquery完全導入之后,此時的window.$已經被替換為jquery中的$ 3.當執行noConflict函數,此時的window.$ === jQuery 成立,進而window.$被替換成之前保存的_$,即為prototype中的$ 4.此時即完成了jQuery讓出$控制權的功能查看全部
-
參考:http://www.cnblogs.com/aaronjs/p/3278578.html#!comments查看全部
-
組件開發為了保證組件可以在不同的項目中都適用,其必須是對其常用功能抽象出來加以實現,絕不會包含具體的業務邏輯而某個特定的項目使用者,在其業務場景中適用組件時不可避免的要加入不符合場景的業務邏輯查看全部
-
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)查看全部
舉報
0/150
提交
取消