为了账号安全,请及时绑定邮箱和手机立即绑定

请老师指教订阅发布模式的应用场合

老师,依我个人的理解:发布模式应该用于经常要修改功能的场景中(比如经常要添加或者删除某些功能)。而这个案列中不管是发布模式还是直接调用切换,本质上都是一样,要修改调用函数的时候改动的都是调用的那个函数。比如直接调用就是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下载
官方微信