国产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
主站蜘蛛池模板: 看真人视频一级毛片 | 久久免费精品国产72精品剧情 | 欧洲亚洲欧美国产日本高清 | 一区二区视频在线观看 | 久久久久久久一精品 | 国产一级久久久久久毛片 | 欧美孕妇乱大交xxxxx | 亚洲欧洲高清 | 国产成人精品三级在线 | 国产区在线观看 | 欧美国产日韩另类 | 日韩 亚洲 制服 欧美 综合 | 在线亚洲综合 | 最新亚洲 | 亚洲欧美韩日 | 久久99精品久久久久久青青91 | 在线观看视频一区 | 国产69久久精品成人看小说 | 欧美日韩国产一区二区三区在线观看 | 成人久久久精品乱码一区二区三区 | 亚洲精品911 | 国产精品九九久久精品女同 | 欧美综合自拍亚洲综合 | 精品视频在线观看视频免费视频 | 日韩欧美综合视频 | 在线一区观看 | 91福利一区二区三区 | 一区二区三区四区亚洲 | 欧美日韩欧美 | 中文字幕一区二区三区在线观看 | 亚洲欧美日韩在线观看二区 | 91综合| 国产一区二区三区免费在线观看 | 亚洲成色999久久网站 | 国产精品乱 | 亚洲精品第1页 | 欧美日韩专区 | 国产欧美一区二区三区精品 | 91精品国产色综合久久不卡蜜 | 亚洲va在线va天堂va四虎 | 香蕉成人啪国产精品视频综合网 |