摘要:無(wú)參方式定義對(duì)象無(wú)參方式很容易處理,只要執(zhí)行和方法即可。研究源碼是發(fā)現(xiàn),這個(gè)地方確實(shí)存在傳參的問(wèn)題,于是動(dòng)手改造了一下。這兩行代碼改造好之后就可以正常傳參了。
無(wú)參方式
var cb = $.Callbacks(), // 定義Callbacks對(duì)象 fn1 = function(){ alert("fn1"); }, fn2 = function(){ alert("fn2"); }; cb.add( a,b ); cb.fire();
無(wú)參方式很容易處理,只要執(zhí)行 add 和 fire 方法即可。
有參方式var cb = $.Callbacks(), // 定義Callbacks對(duì)象 fn1 = function( param ){ alert(param); }, fn2 = function(param){ alert(param); }; cb.add( a,b ); cb.fire("fn1","fn2");
這個(gè)時(shí)候你會(huì)發(fā)現(xiàn),彈出了兩次fn1,并不是自己期待的結(jié)果,感覺(jué)這里jq存在bug,測(cè)試中使用的是jq-2.1.4的版本。研究源碼是發(fā)現(xiàn),這個(gè)地方確實(shí)存在傳參的問(wèn)題,于是動(dòng)手改造了一下。
第一處改造:源碼:
改后的代碼:
注意3099行代碼的區(qū)別。
第二處改造:源碼:
改造后的代碼:
注意3207代碼的區(qū)別。
這兩行代碼改造好之后就可以正常傳參了。在執(zhí)行 fire 方法時(shí),可以接受 fire("fn1","fn2",....) 或者 fire(["fn1","fn2",....]);
只是做了簡(jiǎn)單的測(cè)試,如果有其他jq功能模塊有異常,歡迎大家指出來(lái),謝謝大家
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/88320.html
摘要:源碼學(xué)習(xí)之的通過(guò)回調(diào)實(shí)現(xiàn)異步,其實(shí)現(xiàn)核心是?;卣{(diào)函數(shù)隊(duì)列中的函數(shù)返回時(shí)停止觸發(fā)回調(diào)函數(shù)隊(duì)列只能被觸發(fā)一次記錄上一次觸發(fā)隊(duì)列傳入的值,新添加到隊(duì)列中的函數(shù)使用記錄值作為參數(shù),并立即執(zhí)行。實(shí)際是,內(nèi)部則調(diào)用了在定義的局部函數(shù)。 jQuery源碼學(xué)習(xí)之Callbacks jQuery的ajax、deferred通過(guò)回調(diào)實(shí)現(xiàn)異步,其實(shí)現(xiàn)核心是Callbacks。 使用方法 使用首先要先新建一個(gè)...
摘要:不論怎樣嵌套,定位父級(jí)是誰(shuí),都是到達(dá)頁(yè)面邊緣的距離。原生的相對(duì)于定位的祖先節(jié)點(diǎn)的距離。后來(lái)添加的照樣有事件,這是通過(guò)事件委托實(shí)現(xiàn)的。如果用普通寫(xiě)法,新添加的是沒(méi)有事件的。一旦用時(shí),一定要是用的。 元素的尺寸 width() height() ★★★★★ innerWidth() innerHeight() ★★★★★ outerWidth() outerHeight() ★★★★★ ...
摘要:概念解讀事件函數(shù)了解事件通常與函數(shù)配合使用,這樣可以通過(guò)發(fā)生的事件來(lái)驅(qū)動(dòng)函數(shù)的執(zhí)行。作用用于管理函數(shù)隊(duì)列。往內(nèi)部隊(duì)列添加的函數(shù)保持唯一,不能重復(fù)添加。調(diào)用后開(kāi)放容器,添加容器的處理函數(shù)將會(huì)立即執(zhí)行。 概念解讀 事件函數(shù)了解Callbacks 事件通常與函數(shù)配合使用,這樣可以通過(guò)發(fā)生的事件來(lái)驅(qū)動(dòng)函數(shù)的執(zhí)行。 原則:一個(gè)事件對(duì)應(yīng)一個(gè)事件函數(shù),在一個(gè)事件對(duì)應(yīng)多個(gè)事件函數(shù)的情況下,后者會(huì)覆蓋...
摘要:響應(yīng)式數(shù)據(jù)是在模塊中實(shí)現(xiàn)的我們可以看看是如何實(shí)現(xiàn)的。早期代碼使用是進(jìn)行單元測(cè)試,是事件模型的單元測(cè)試文件。模塊實(shí)際上采用采用組合繼承借用構(gòu)造函數(shù)原型繼承方式繼承了其目的就是繼承的,等方法。 前言 首先歡迎大家關(guān)注我的Github博客,也算是對(duì)我的一點(diǎn)鼓勵(lì),畢竟寫(xiě)東西沒(méi)法獲得變現(xiàn),能堅(jiān)持下去也是靠的是自己的熱情和大家的鼓勵(lì)。接下來(lái)的日子我應(yīng)該會(huì)著力寫(xiě)一系列關(guān)于Vue與React內(nèi)部原...
摘要:同時(shí)在初始化的過(guò)程中,會(huì)將主線程加載的模塊中的每個(gè)方法,都綁定一個(gè)快捷方法,其方法名與模塊中的函數(shù)聲明保持一致,內(nèi)部則使用來(lái)完成調(diào)用邏輯。 寫(xiě)在前面 最近正好在看web worker相關(guān)的東西,今天無(wú)意中就看到了github一周最熱項(xiàng)目的推送中,有這么一個(gè)項(xiàng)目workerize,repo里的文檔的描述如下: Moves a module into a Web Worker, autom...
閱讀 1193·2023-04-26 02:42
閱讀 1638·2021-11-12 10:36
閱讀 1796·2021-10-25 09:47
閱讀 1270·2021-08-18 10:22
閱讀 1810·2019-08-30 15:52
閱讀 1221·2019-08-30 10:54
閱讀 2641·2019-08-29 18:46
閱讀 3504·2019-08-26 18:27