javascript - 如何在 JavaScript 中将函数作为参数传递?

标签 javascript function parameters callback

我需要创建一个带有回调函数的函数,但我找到的解决方案不允许设置该函数。

我来解释一下:

这是我找到的解决方案:

function callbackFunction()
{
   alert("hello world");
}

function myFunction(callback)
{
   callback()
}

myFunction(callbackFunction())  /* this works */

这就是我需要的:

function myFunction(callback)
{
   callback()
}

myFunction(function(){alert("hello world");});  /* this doesn't work  */

一些想法?

谢谢

最佳答案

myFunction(callbackFunction())  /* this works */

不,没有。至少不是你想象的那样。这是:

  1. 调用callbackFunction
  2. callbackFunction结果传递给 myFunction

myFunction 尝试调用 callback 时,您可能会收到错误,因为它不是一个函数。但您忽略了这一点,因为您看到了 alert() 并认为它有效。 alert() 发生在调用 myFunction 之前。

您希望将其作为函数引用而不是函数调用传递:

myFunction(callbackFunction)  /* this works */

这将产生相同的可见结果(alert()),但按照预期的操作顺序并且没有错误。

<小时/>
myFunction(function(){alert("hello world");});  /* this doesn't work  */

You sure about that?如果这确实对您“不起作用”,那么您没有与我们分享的问题一定还有更多,因为该代码按原样工作。

关于javascript - 如何在 JavaScript 中将函数作为参数传递?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22941545/

相关文章:

javascript - 防止在特定情况下设置可观察对象

javascript - coffeescript while/loop/for multiple statements in beautiful coffee

javascript - 动态翻页功能 - vanilla javascript

sql-server - 当我使用 BeginExecuteNonQuery 时,我的输出参数始终为空

javascript - 使用dayjs的两次时间之间的差异

c - 用向右移动 'k' 次的单词替换文本中的每个单词

python - 添加一个新的 pandas dataframe 列,用条件计算填充它(平均如果,标准差如果)

python - Python中默认参数的范围是什么?

java - 将构造函数参数传递给 JAVA 方法

javascript - 我可以在 $.getJSON 函数中使用递归 JavaScript 函数吗?