Javascript Backbone.js如何实现事件?
澄清: 我只针对支持createEvent、addEventListener等的现代浏览器 问题 我的意思是,在JavaScript中。搜索显示他们没有使用Javascript Backbone.js如何实现事件?,javascript,backbone.js,Javascript,Backbone.js,澄清: 我只针对支持createEvent、addEventListener等的现代浏览器 问题 我的意思是,在JavaScript中。搜索显示他们没有使用createEvent() 我在这里寻找答案,但没有找到任何答案 我在中搜索了createEvent(),但没有找到 主干如何从本地语言的角度实现事件 他们在用电话吗 如果JavaScript已经有自定义事件(通过createEvent())可用,并且事件监听器也可用(addEventListener()),为什么不使用内置事件?主干就可以了
createEvent()
我在这里寻找答案,但没有找到任何答案
我在中搜索了createEvent()
,但没有找到
主干如何从本地语言的角度实现事件
他们在用电话吗
如果JavaScript已经有自定义事件(通过createEvent()
)可用,并且事件监听器也可用(addEventListener()
),为什么不使用内置事件?主干就可以了。它包含163行代码,计算空格和注释
阐明如何
- 一些基本的东西,如用于拆分事件名称的regex、作为简单对象文本的绑定侦听器的简单注册表
,打开|绑定
,关闭|解除绑定
,触发器
,一次
,列表
停止监听
createEvent
,addEventListener
)绑定到DOM节点。模型和集合与DOM节点没有关联-您必须跳过许多不必要的障碍才能重用该代码
主干事件是否遵循观察者模式?
不完全是这样。主干。Events
更接近。对象维护命名事件的事件侦听器列表(通过on
),然后该对象在想要触发事件时通过trigger
触发对这些侦听器的调用
主干网活动是如何实施的?
主干网的核心是为每个事件维护一个事件监听器数组(在旧版本的主干网中,它使用一个链表;这要慢一些)。每个对象维护自己的监听器列表;没有中央注册表
在
trigger
上,主干调用为该事件注册的所有侦听器;它还调用特殊情况下的所有侦听器all
事件。dood,只需搜索“events”在您链接到的源代码中。在那里有很好的文档记录。请尽快关闭此问题。因为内置事件不是跨浏览器的。首先,然后,第二个主干事件类做一些内置事件不做的事情(名称空间等…)一些使用主干的人不是。关于你刚才删除的问题,你是误解了提升。只有变量声明被提升,而不是赋值。所以做*你的IIFE*;var SCommon={…};
实际上等同于var SCommon;*你的IIFE*;SCommon={…}
。请注意,尽管吊装,但SCommon
的值是如何未定义的
。我只是想让您知道。@pure_-code我不是“off-on-tangent”,我只是试图解释代码失败的原因。当您计算this.S.Common.cacheElements(this.E)时;
,this.S.Common的值未定义。之所以如此,是因为this.S.Common==SCommon
,而SCommon
未定义。我在前面的评论中解释了为什么SCommon
未定义。但有什么好处?DOM节点不是免费的;您将引入大量内存再次强调,跳过所有这些障碍的好处是什么?基于DOM的事件管理一系列主干网没有用处的不必要行为(冒泡、取消)。创建事件对象很难。等等。另外,主干网的事件实现是本机事件。是的,请看一下我之前评论中的js perf链接。注意,两个实现的速度都一样快。jQuery的版本-是的,如果“有趣”是指“故意使用相同的函数名”.Backbone对$的使用。ajax
也有一些jquery的连接。它们遵循jquery和,是的,设置的模式。最好有一个一致的界面-对任何选择Backbone的人来说都不太奇怪!