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