【问题标题】:Is there a benefit to calling a function within a function?在函数中调用函数有好处吗?
【发布时间】:2016-10-01 15:44:39
【问题描述】:

我正在关注关于 Javascript 的 MDN 教程,他们将 onclick 处理程序添加到按钮,然后在函数中调用函数:

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

我尝试将事件直接分配给函数,但它仍然有效,所以我想知道是否有充分的理由按他们的方式这样做。

【问题讨论】:

  • 一般在某些方面需要修改参数,或者需要依次调用多个函数时才这样做。
  • 我不太了解参数,但我确实看到了调用多个函数的原因。

标签: javascript events dom-events


【解决方案1】:

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

【讨论】:

  • 我不明白您所说的事件对象和第一个参数是什么意思,抱歉 - 请您澄清一下。
【解决方案2】:

定义用于处理事件的 lambda 函数是一种肮脏的编码方式,IMO。将接口和实际处理分开会更干净、更安全。

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

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

另一方面,可能最多不会出现超过几周或几个月的网页无论如何都不是进行干净编码的最佳场所......

【讨论】:

  • 对不起,我是新手,不明白什么是 lambda 函数或接口是什么意思。
  • 一个 lambda 函数只是一个没有名字的函数。界面基本上是您所看到的(按钮、div 等),而处理是代码的算法部分(一旦用户通过界面触发操作,您对数据所做的操作)。例如,如果用户单击按钮或按下某个热键,您可以执行相同的处理。
猜你喜欢
  • 2013-05-18
  • 1970-01-01
  • 2018-09-03
  • 2014-08-27
  • 1970-01-01
  • 2010-12-04
  • 2011-05-16
  • 1970-01-01
  • 2011-10-11
相关资源
最近更新 更多