国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

JS設計模式之觀察者模式實現實時改變頁面中金額數的方法

來源:懂視網 責編:小采 時間:2020-11-27 22:20:05
文檔

JS設計模式之觀察者模式實現實時改變頁面中金額數的方法

JS設計模式之觀察者模式實現實時改變頁面中金額數的方法:本文實例講述了JS設計模式之觀察者模式實現實時改變頁面中金額數的方法。分享給大家供大家參考,具體如下: 觀察者設計模式概念: 有時被稱作發布/訂閱模式,觀察者模式定義了一種一對多的依賴關系,讓多個觀察者(每個處的主賬號金額函數)對象同時監聽某一個
推薦度:
導讀JS設計模式之觀察者模式實現實時改變頁面中金額數的方法:本文實例講述了JS設計模式之觀察者模式實現實時改變頁面中金額數的方法。分享給大家供大家參考,具體如下: 觀察者設計模式概念: 有時被稱作發布/訂閱模式,觀察者模式定義了一種一對多的依賴關系,讓多個觀察者(每個處的主賬號金額函數)對象同時監聽某一個

本文實例講述了JS設計模式之觀察者模式實現實時改變頁面中金額數的方法。分享給大家供大家參考,具體如下:

觀察者設計模式概念:

有時被稱作發布/訂閱模式,觀察者模式定義了一種一對多的依賴關系,讓多個觀察者(每個處的主賬號金額函數)對象同時監聽某一個主題對象(修改子賬號金額后調用的deliver的對象Publisher)。這個主題對象在狀態(調用deliver方法)發生變化時,會通知所有觀察者對象,使它們能夠自動更新自己。

在一個會員管理系統中,主賬號給子賬號充值金額的功能。

場景:主賬號有10000元,如果給子賬號充值增加1000元,那么主賬號的金額應該相對應報減少1000元顯示9000元;

頁面上有多種處需要實時改變的位置,怎么辦?

在上圖中有三處總余額要顯示;

通過子加減按鈕來調整賬號余額的話,這三處的總余額也需要相對改變;

第一種方式:在一個函數中加添加多個元素對象,這樣可以是一個門面模式,來簡化調用重復的代碼;

function modifyPrice(price) {
 $("#a1").html(price);
 $("#a2").html(price);
 $("#a3").html(price);
 $("#a4").html(price);
}

第二種方式:用觀察者設計模式,如果狀態改變了和它相關的依賴也會隨之變化;

// 訂閱者
function a1( price ) {
 console.log( price );
 $("#a1").html(price);
}
// 訂閱者
function a2( price ) {
 console.log( price );
 $("#a2").html(price);
}
// 訂閱者
function a3( price ) {
 console.log( price );
 $("#a3").html(price);
}
// 訂閱者
function a4( price ) {
 console.log( price );
 $("#a4").html(price);
}
// 發布者
function PublisherPrice() {
 this.subscribers = [];
 this.addSubscriber = function( subscriber) {
 // some 如果返回true說明this.subscriber數姐中已經有了相同的訂閱者了,當遇到第一個比較值是true就返回true,如果沒有遇到true最后返回一個false;
 var isExsit = this.subscribers.some(function( el ){
 return el == subscriber
 });
 if ( !isExsit ) {
 this.subscribers.push( subscriber );
 }
 return this;
 }
 this.deliver = function(
 // forEach 相當于是for循環
 this.subscribers.forEach(function( fn ) {
 fn(price);
 });
 return this;
 }
}

客戶端調用

var publisherPrice = new PublisherPrice();
publisherPrice.addSubscriber(a1);
publisherPrice.addSubscriber(a2);
publisherPrice.addSubscriber(a3);
publisherPrice.addSubscriber(a4);
publisherPrice.deliver("¥200.00");

第二種有什么優點?

1、每一個訂閱者都是相互獨立的只和發布者有關系,與發布者是一對多的關系,也可以是一對一的關系。
2、每一個訂閱者可以根據自己的需求來調用,而不影響其它訂閱者
3、與第一種方式相比,第二種方式的代碼可讀性、可維護性強;

更多關于JavaScript相關內容可查看本站專題:《javascript面向對象入門教程》、《JavaScript切換特效與技巧總結》、《JavaScript查找算法技巧總結》、《JavaScript錯誤與調試技巧總結》、《JavaScript數據結構與算法技巧總結》、《JavaScript遍歷算法與技巧總結》及《JavaScript數學運算用法總結》

希望本文所述對大家JavaScript程序設計有所幫助。

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

JS設計模式之觀察者模式實現實時改變頁面中金額數的方法

JS設計模式之觀察者模式實現實時改變頁面中金額數的方法:本文實例講述了JS設計模式之觀察者模式實現實時改變頁面中金額數的方法。分享給大家供大家參考,具體如下: 觀察者設計模式概念: 有時被稱作發布/訂閱模式,觀察者模式定義了一種一對多的依賴關系,讓多個觀察者(每個處的主賬號金額函數)對象同時監聽某一個
推薦度:
標簽: 金額 js 改變的
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 在线观看视频日韩 | 免费国产小视频在线观看 | 国产精品一区在线观看 | 欧美亚洲一二三区 | 国产高清一区二区三区 | 欧洲综合网 | 亚洲第一免费视频 | 一级毛片免费下载 | 欧美综合亚洲图片综合区 | 欧美综合在线视频 | 国产黄色毛片 | 欧美日韩综合视频 | 国产在线每日更新 | 久久性色 | 亚洲区中文字幕 | 亚洲欧洲一区二区 | 能看毛片的网站 | 国产成人麻豆精品 | 99久久国内精品成人免费 | 久久精品国产亚洲 | 日韩亚射 | 日韩城人网站 | 一区二区三区久久 | 亚洲一区免费在线观看 | 中文字幕第13亚洲另类 | 欧美 日韩 亚洲另类专区 | 亚洲永久精品一区二区三区 | 91麻豆免费观看 | 欧美一区二区三区在线 | 欧美精品亚洲网站 | 黄片一级毛片 | 亚洲欧美国产精品第1页 | 一区二区国产在线观看 | 在线免费观看国产精品 | 干比网 | 日韩精品一区在线观看 | 日本三级韩国三级欧美三级 | 日韩在线网址 | 亚洲欧美国产高清va在线播放 | 欧美日韩v| 黄色免费网站视频 |