學(xué)習(xí)JavaScript設(shè)計(jì)模式之觀察者模式_javascript技巧
來(lái)源:懂視網(wǎng)
責(zé)編:小采
時(shí)間:2020-11-27 21:49:07
學(xué)習(xí)JavaScript設(shè)計(jì)模式之觀察者模式_javascript技巧
學(xué)習(xí)JavaScript設(shè)計(jì)模式之觀察者模式_javascript技巧:一、定義 觀察者模式(發(fā)布-訂閱模式):其定義對(duì)象間一種一對(duì)多的依賴關(guān)系,當(dāng)一個(gè)對(duì)象的狀態(tài)發(fā)生改變時(shí),所有依賴于它的對(duì)象都將得到通知。 在JavaScript中,一般使用事件模型來(lái)替代傳統(tǒng)的觀察者模式。 好處: (1)可廣泛應(yīng)用于異步編程中,是一種替
導(dǎo)讀學(xué)習(xí)JavaScript設(shè)計(jì)模式之觀察者模式_javascript技巧:一、定義 觀察者模式(發(fā)布-訂閱模式):其定義對(duì)象間一種一對(duì)多的依賴關(guān)系,當(dāng)一個(gè)對(duì)象的狀態(tài)發(fā)生改變時(shí),所有依賴于它的對(duì)象都將得到通知。 在JavaScript中,一般使用事件模型來(lái)替代傳統(tǒng)的觀察者模式。 好處: (1)可廣泛應(yīng)用于異步編程中,是一種替

一、定義
觀察者模式(發(fā)布-訂閱模式):其定義對(duì)象間一種一對(duì)多的依賴關(guān)系,當(dāng)一個(gè)對(duì)象的狀態(tài)發(fā)生改變時(shí),所有依賴于它的對(duì)象都將得到通知。
在JavaScript中,一般使用事件模型來(lái)替代傳統(tǒng)的觀察者模式。
好處:
(1)可廣泛應(yīng)用于異步編程中,是一種替代傳遞回調(diào)函數(shù)的方案。
(2)可取代對(duì)象之間硬編碼的通知機(jī)制,一個(gè)對(duì)象不用再顯示地調(diào)用另外一個(gè)對(duì)象的某個(gè)接口。兩對(duì)象輕松解耦。
二、DOM事件–觀察者模式典例
需要監(jiān)控用戶點(diǎn)擊document.body的動(dòng)作,但是我們沒(méi)有辦法預(yù)知用戶將在什么時(shí)間點(diǎn)擊。
所以,我們訂閱document.body上的click事件,當(dāng)body節(jié)點(diǎn)被點(diǎn)擊時(shí),body節(jié)點(diǎn)便向訂閱者發(fā)布這個(gè)消息!
某網(wǎng)站有header頭部、nav導(dǎo)航、消息列表等模塊。這幾個(gè)模塊的渲染都需要獲取用戶登陸信息。
(1)一般寫(xiě)法:
(2)使用觀察者模式,很輕松解耦!
三、通用觀察者模式
希望本文所述對(duì)大家學(xué)習(xí)javascript程序設(shè)計(jì)有所幫助。
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com
學(xué)習(xí)JavaScript設(shè)計(jì)模式之觀察者模式_javascript技巧
學(xué)習(xí)JavaScript設(shè)計(jì)模式之觀察者模式_javascript技巧:一、定義 觀察者模式(發(fā)布-訂閱模式):其定義對(duì)象間一種一對(duì)多的依賴關(guān)系,當(dāng)一個(gè)對(duì)象的狀態(tài)發(fā)生改變時(shí),所有依賴于它的對(duì)象都將得到通知。 在JavaScript中,一般使用事件模型來(lái)替代傳統(tǒng)的觀察者模式。 好處: (1)可廣泛應(yīng)用于異步編程中,是一種替