调用函数中的函数有什么好处?

时间:2016-10-01 15:44:39

标签: javascript events javascript-events

我在关于javascript的MDN教程之后,他们在按钮上添加了一个onclick处理程序,然后调用函数中的函数:

myButton.onclick = function() {
setUserName();
}

我尝试直接将该事件分配给该函数,但它仍然有效,所以我想知道是否有任何理由这样做。

2 个答案:

答案 0 :(得分:2)

如果函数不关心作为第一个参数传递的事件对象,则为no。它使代码膨胀,在内存中创建一个额外的对象并且没有任何好处。

答案 1 :(得分:0)

定义处理事件的lambda函数是一种肮脏的编码方式,即IMO。分离界面和实际处理更清晰,更安全。

如果你需要在处理程序中做一些复杂的事情,那么定义一个正确命名的函数来完成这项工作同样容易,并为它分配处理程序。

一旦你完成了这个可怕的命名工作,你可以用你的处理程序做任何你想做的事情,包括通过提供虚拟事件来测试它,重用它来处理来自不同按钮的事件等。

另一方面,最多可能不会存在超过几周或几个月的网页,无论如何都不是干净编码的最佳位置......