【发布时间】:2015-02-17 12:55:41
【问题描述】:
我正在开发一个应用程序,速度是一个问题。将事件附加到元素时,我知道有两种方法:
element.addEventListener('click', function() {
// code to execute onclick
})
或
element.onclick = function() {
// code to execute onclick
}
哪种方式更高效、更健壮? ...即使两者都有效,这是正确/首选的方式?
【问题讨论】:
-
element.addEventListener将允许您添加多个处理程序-我怀疑onclick无论如何都会调用addEventListener,这意味着addEventListener是您的答案。 -
使用 addEventListener 您可以根据需要为元素添加任意数量的事件侦听器,而使用第二种方法则不可能,如果您尝试重新连接另一个处理程序,它只会替换最后一个附加的处理程序.
-
我觉得有些 Knuth 在这里是为了:“过早的优化是万恶之源” ...换句话说,你有 性能问题,还是您预期有问题?如果是后者(我怀疑),您可能想要使用最容易读/写的方法,然后测量您的性能,如果您有一个问题,改变一件事,然后再次测量。不要使用猜测。
-
只是一个旁注,使用引用而不是匿名函数,这样你也可以删除监听器。
标签: javascript events