<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題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關(guān)鍵字專題關(guān)鍵字專題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
        當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

        JS設(shè)計模式之觀察者模式實現(xiàn)實時改變頁面中金額數(shù)的方法

        來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-27 22:20:05
        文檔

        JS設(shè)計模式之觀察者模式實現(xiàn)實時改變頁面中金額數(shù)的方法

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

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

        觀察者設(shè)計模式概念:

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

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

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

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

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

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

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

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

        第二種方式:用觀察者設(shè)計模式,如果狀態(tài)改變了和它相關(guān)的依賴也會隨之變化;

        // 訂閱者
        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);
        }
        // 發(fā)布者
        function PublisherPrice() {
         this.subscribers = [];
         this.addSubscriber = function( subscriber) {
         // some 如果返回true說明this.subscriber數(shù)姐中已經(jīng)有了相同的訂閱者了,當(dāng)遇到第一個比較值是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 相當(dāng)于是for循環(huán)
         this.subscribers.forEach(function( fn ) {
         fn(price);
         });
         return this;
         }
        }
        
        

        客戶端調(diào)用

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

        第二種有什么優(yōu)點?

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

        更多關(guān)于JavaScript相關(guān)內(nèi)容可查看本站專題:《javascript面向?qū)ο笕腴T教程》、《JavaScript切換特效與技巧總結(jié)》、《JavaScript查找算法技巧總結(jié)》、《JavaScript錯誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運算用法總結(jié)》

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

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

        文檔

        JS設(shè)計模式之觀察者模式實現(xiàn)實時改變頁面中金額數(shù)的方法

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

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 国产精品美女久久久免费| 国产午夜亚洲精品| 国产在线精品一区免费香蕉| 免费a级毛片视频| 激情婷婷成人亚洲综合| 日韩免费无砖专区2020狼| 亚洲精品亚洲人成在线| 成人免费视频网址| 亚洲av无码成人影院一区| 又色又污又黄无遮挡的免费视 | 国产亚洲精午夜久久久久久| 一级做性色a爰片久久毛片免费| 亚洲精品线路一在线观看 | 精品国产免费一区二区三区香蕉| 亚洲一区二区三区在线视频| 国产亚洲精品免费视频播放| 亚洲AV无码不卡在线播放| 84pao国产成视频免费播放| 亚洲国产美女精品久久| 欧美a级在线现免费观看| 爱情岛论坛亚洲品质自拍视频网站| 又粗又大又硬又爽的免费视频| 中文字幕a∨在线乱码免费看| 久久精品亚洲综合一品| 91麻豆最新在线人成免费观看| 亚洲码和欧洲码一码二码三码| 亚洲成A人片在线观看无码3D| a级精品九九九大片免费看| 亚洲成A∨人片在线观看无码| 天天天欲色欲色WWW免费| 一级视频在线免费观看| 久久久久久亚洲Av无码精品专口 | 国产黄色片免费看| 久久夜色精品国产噜噜亚洲AV| 成人免费看片又大又黄| 一级中文字幕乱码免费| 亚洲欧洲自拍拍偷综合| 亚洲AV无码成人精品区大在线| 无码人妻久久一区二区三区免费| 亚洲av无码一区二区三区天堂| 亚洲精品乱码久久久久久按摩|