我正在尝试找出一种很好的方式来拥有视图和控制器,并最小化它们之间的联系。
除了一个事件的多个订阅者之外,像这样的js代码有什么主要区别吗:
var customers = {
get: function(callback) {
$.get('/customers', {}, function(data) {
callback.call(this, data);
});
}
};
还有像这样的事件驱动方法(事件对象只是伪代码):
var customers = {
get: function() {
$j.get('/customers', {}, function(data) {
event.publish('customers.loaded', data);
});
}
};
在这两种情况下,customers对象的使用者都不知道它的内部工作原理。其中一种方式比另一种方式更有优势吗?
发布于 2012-02-28 00:07:14
当我制作一个模块时,我会使用回调解决方案。这就少了一个依赖项:对事件对象的依赖项。
如果我下载了一个第三方插件,比方说你现在可能正在工作的那个插件,我想要控制当函数执行完成并使用我自己选择的事件总线引发我自己的事件时调用的内容。
如果不制作模块,我认为这两种解决方案都有其魅力。:)
https://stackoverflow.com/questions/7181007
复制相似问题