第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

要被JavaScript的訂閱發(fā)布模式玩壞了

要被JavaScript的訂閱發(fā)布模式玩壞了

慕妹3146593 2019-04-14 10:19:12
上代碼:;(function(window,doc,undef){vartopics={},subUid=-1,pubsubz={};pubsubz.publish=function(topic,args){if(!topics[topic]){returnfalse;}setTimeout(function(){varsubscribers=topics[topic],len=subscribers?subscribers.length:0;while(len--){subscribers[len].func(topic,args);}},0);returntrue;};pubsubz.subscribe=function(topic,func){if(!topics[topic]){topics[topic]=[];}vartoken=(++subUid).toString();topics[topic].push({token:token,func:func});returntoken;};pubsubz.unsubscribe=function(token){for(varmintopics){if(topics[m]){for(vari=0,j=topics[m].length;i
查看完整描述

2 回答

?
莫回?zé)o

TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個(gè)贊

jQuery的自定義事件也是發(fā)布訂閱模式,類比一下:
varelem=$("#example");
elem.on("hello",function(){});
elem.trigger("hello");
其中on相當(dāng)于訂閱,trigger相當(dāng)于發(fā)布。想一下事件的綁定和事件的觸發(fā),其實(shí)發(fā)布訂閱也是跟這個(gè)一致的,因此應(yīng)該在同一個(gè)元素上。
再回到你的第一個(gè)問題,pubsubz的代碼相當(dāng)于一個(gè)簡單的實(shí)現(xiàn)發(fā)布訂閱模式的JavaScript庫(類似的還有AmplifyJS)。畢竟,發(fā)布訂閱模式是需要用代碼自行實(shí)現(xiàn)的。pubsubz為你提供發(fā)布訂閱功能,你在任何需要發(fā)布訂閱功能的時(shí)候,調(diào)用它提供的publish和subscribe方法就可以了。
因?yàn)閜ubsubz只是一個(gè)很簡單的發(fā)布訂閱模式的實(shí)現(xiàn),它相當(dāng)于要求你所有的訂閱(理解為綁定自定義事件)、發(fā)布(理解為觸發(fā)自定義事件)都在它這個(gè)元素上。
                            
查看完整回答
反對(duì) 回復(fù) 2019-04-14
  • 2 回答
  • 0 關(guān)注
  • 307 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)