我正在构建Redux应用程序,并希望click
和mousemove
事件处理程序根据应用程序状态进行更改。
为实现此目的,我计划将click
和单mousemove
个处理程序附加到document
。这些将属于订阅Redux商店的范围,并且知道相关状态。
我看到了两种实现处理程序的策略:
switch
语句。必须为每个被解雇的事件调用此switch
。scope._clickHandler
和scope._moveHandler
属性,每当状态更新时,它们都会换出它们的对象。如果我选择策略2,我希望我的mousemove
处理程序在大多数时间都不做任何事情。但mousemove
被解雇了很多!什么是可以绑定到scope._moveHandler
属性的性能最高的无操作函数?
在最好的情况下(w / r / t问题1),假设策略1中使用的switch
语句必须测试10到100个案例,策略2的性能是否比策略1更高?
在这种方法中,当事件触发时,将始终调用一个“委托”函数。该函数将根据状态属性执行不同的操作,方法是在switch
中匹配该状态,或者仅通过将绑定为状态的不同“delegee”函数。
问题1询问最佳无操作“delegee”函数,而问题2询问在switch
回调中有一个大mousemove
块导致的性能损失。
如果我们作为一个社区同意@nnnnnn的直觉,function(){}
与无操作一样好,我的问题就变成了:
性能更差:无操作函数调用的开销,或switch
块中的相等比较?