我正在尝试找出一种很好的方法来拥有视图和控制器并最大限度地减少它们之间的联系。
除了一个事件有多个订阅者之外,像这样的 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);
});
}
};
在这两种情况下,客户对象的消费者都不了解其内部运作方式。一种方式比另一种方式有优势吗?
Event's are回调,但区别在于它们绑定的时间和地点。在第一种情况下,您需要在调用时引用回调get
被称为,另外它仅限于single打回来。
在第二种情况下,(假设您使用该伪代码触发事件)您可以在 where 范围之外绑定回调get
被调用,允许更强的数据封装。此外,事件支持触发多个回调,以便可以根据访问权限执行不同的函数。customers
object.
我建议使用面向事件的解决方案,因为 JavaScript 是一种面向事件的语言。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)