Backbone.js如何实现事件?

2 javascript backbone.js

澄清:

我只针对支持createEvent,addEventListener等的现代浏览器....

我的意思是本机,用JavaScript.搜索显示他们没有使用createEvent().

我在文档中查找答案,但没有找到任何答案.

createEvent()这里搜索了源代码,但没有点击.

骨干如何从母语角度实现事件?

他们使用观察者模式吗?

如果JavaScript已经有自定义事件(via createEvent()),并且事件监听器也可用(addEventListener()为什么他们不使用内置事件?

Nev*_*vir 8

为什么Backbone不使用本机事件?

除了骨干视图之外,将本机事件用于任何事情都没有意义.骨干提供了事件管理模式,集合,和一般

本机事件(via createEvent,addEventListener)绑定到DOM节点.模型和集合不与DOM节点相关联 - 您必须跳过许多不必要的环节来重用该代码.

Backbone事件是否遵循观察者模式?

不是,不是. Backbone.Events发布 - 订阅模式更接近.对象维护命名事件(via on)的事件侦听器列表,然后该对象在触发trigger事件时触发对这些侦听器的调用.

Backbone事件是如何实现的?

Backbone的核心是每个事件维护一个事件监听器数组(在骨干的旧版本中,它曾经使用链表;这个速度较慢).每个对象都维护自己的侦听器列表; 没有中央登记处.

trigger,骨干调用所有为该事件注册的监听器; 它还会为特殊all事件调用任何听众.