这是一个随机的问题,但是我想知道为什么相对于匿名函数而言,对于单击事件,命名回调的表现更差。
这里是我在Firefox和Mac上的Chrome中运行的JSPerf测试的链接。
我想我的假设是,命名回调将始终表现更好。例如,当使用.each
时,命名的回调is slightly faster。
感谢您的时间!
[Edit我编辑了.each
JSPerf测试,因为(a)我没有测试我的意思,并且(b)我正在[[trying以便更模仿事件。
Edit 2我的测试设置从一开始就不正确,因为@Esailija指出如下。这个问题虽然没有什么意义,但至少可以对进行JSPerf测试的人有所帮助。
并且整个测试的前提是荒谬的,如果其他所有条件都相同,则具有名称的函数与不具有名称的函数之间没有区别。错误地设置jsperf时,您只会看到不同。当您不断为他们获得相等的结果时,便会知道您已正确设置了它-但从常识上您已经知道了这一点:)
编辑:我试图证明这一点,但似乎匿名函数实际上并没有更快地得到解决-http://jsperf.com/scope-chain-anonymous-function
编辑:
如果调用a.off();
删除任何事件处理程序,则命名函数将与解析匿名函数一样快或更快。