在决定如何将回调传递给addEventListener时,我应该考虑什么?

时间:2017-04-06 21:36:18

标签: javascript addeventlistener

在决定如何将回调传递给addEventListener时,我应该考虑以下方法?

element.addEventListener('click', function(){
    // ...
});

function doSomething(){
    // ...
}
element.addEventListener('click', doSomething);

element.addEventListener('click', function doSomething(){
    // ...
});

2 个答案:

答案 0 :(得分:1)

第一种方式称为anonymous function。我不会真的说那是你必须要做的事情。或者'应该'要做到这一点,但是你通常会看到它们用于创建非常简单的一次性逻辑,你不想让你的代码膨胀为一个新的块。

如果您需要调试代码,或者您可能希望重用函数中的代码,那么如果您编写命名函数,您的生活显然会更好。

答案 1 :(得分:1)

您的第一个代码段使用匿名函数。 Todd Motto has written an article列出了为什么要避免在回调函数中使用匿名函数的一些原因:

  
      
  • 更难调试
  •   
  • 无法重复使用
  •   
  • 无法轻松测试
  •   
  • 不描述功能的作用
  •   
  • 使代码缺乏结构
  •   
  • 创建更混乱/不清楚的代码
  •   
  • 文档会受到影响(比如jsDoc)
  •