亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

請老師指教訂閱發布模式的應用場合

老師,依我個人的理解:發布模式應該用于經常要修改功能的場景中(比如經常要添加或者刪除某些功能)。而這個案列中不管是發布模式還是直接調用切換,本質上都是一樣,要修改調用函數的時候改動的都是調用的那個函數。比如直接調用就是A(),而發布模式就是 observer.publish("completeA")。沒有看出這樣做好處到底在哪里? 對于發布模式我只理解了比如在一個新聞網站中對應多個板塊時,更新新聞很方便,或者某個類經常要修改功能。還請老師指點我這個模式的應用場合。謝謝

正在回答

6 回答

http://www.codeceo.com/article/javascript-observer-pattern.html,這個網頁解析的比較清楚

0 回復 有任何疑惑可以回復我~
#1

阿輝2 提問者

謝謝,我昨天搜索了一些資料,說是這種模式耦合(或者說嵌套)的是一個接口,而不是一個具體的函數調用,這樣只要修改接口就可以刪除原函數,或者添加別的函數,不用到原來的觸發函數里修改。和你鏈接的那個地址解釋的差不多。謝謝你的解答。 提供給別人幫助的時候不能太抽象,否則對于新手來說,一個教條式的解答,很難理解其作用。
2015-12-17 回復 有任何疑惑可以回復我~

console.log(this);//這個才應該是對的

var tmp = this; 

console.log("開始");

? ? var element = $(".page-a");

? ? //根元素

tmp.$root = element;

//小男孩

tmp.$boy = element.find(".chs-boy");

? ? tmp.$window = element.find(".windows"); ?

tmp.$leftWin ?= tmp.$window.find(".window-left");

? ? tmp.$rightWin = tmp.$window.find(".window-right");

//運行動畫

tmp.run();

//模擬執行時間

setTimeout(function() {

console.log(tmp);

// console.log(this);//改變了


callback()

}, 20000)//差不多也是20s

自己回答自己 最后那個20秒是pagea的動畫執行時間


0 回復 有任何疑惑可以回復我~

請問下這個new pageA(function() {})傳入的是一個function 但是后面章節pageA()要傳入一個節點ID?

這個該如何解決


0 回復 有任何疑惑可以回復我~
#1

阿輝2 提問者

那就是返回的東西不一樣吧,具體我的我也不知道了,你看pageA的函數最后是返回還是調用不就知道了?如果回調的是函數的執行形式,比如從C(),那么傳入id會出錯,如果最后是return的形式,比如return C,那么不管你傳入什么都是可以的
2015-12-26 回復 有任何疑惑可以回復我~

那什么時候要用自定義事件?什么時候要雙向數據綁定?

”在一個新聞網站中對應多個板塊時,更新新聞很方便”:這個算是個自定義事件?還有什么案列中要用?

這個案列貌似也不存在多個訂閱者響應一個事件的情況,應用的是雙向數據綁定?

0 回復 有任何疑惑可以回復我~

自定義事件

0 回復 有任何疑惑可以回復我~
#1

阿輝2 提問者

那什么時候要用自定義事件?什么時候要雙向數據綁定? ”在一個新聞網站中對應多個板塊時,更新新聞很方便”:這個算是個自定義事件?還有什么案列中要用? 這個案列貌似也不存在多個訂閱者響應一個事件的情況,應用的是雙向數據綁定?聽別人說應用的是解耦,到底解耦與不解耦會有什么好與不好的情況發生?
2015-12-16 回復 有任何疑惑可以回復我~

雙向數據綁定

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

請老師指教訂閱發布模式的應用場合

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號