【问题标题】:how will you explain callback functions in Javascript to a beginner? [closed]您将如何向初学者解释 Javascript 中的回调函数? [关闭]
【发布时间】:2013-09-16 10:11:27
【问题描述】:

我对 Javascript 很陌生(只知道语法),我正在学习 AngularJs。很多时候,我发现一个函数作为其他函数的参数。那些回调?而且,在什么情况下,需要编写这样的函数?谢谢。

【问题讨论】:

  • 您应该向我们展示您发现的困惑。
  • 嘿雷克斯。感谢您的评论。我的观点是,如果我们可以直接计算并立即返回它,为什么要在函数中包含其他函数(我猜,它执行相同的任务),并且还要调用该内部函数?

标签: javascript angularjs callback


【解决方案1】:

那些是回调吗?

是的。这些被称为回调。

什么情况下需要写这样的函数

当您需要在您调用的函数之后执行某些操作时,您需要使用回调函数。很可能如果您正在编写任何异步代码,并且如果您需要在异步任务完成时执行某些操作,那么您肯定需要回调函数。例如,如果您需要在 ajax 请求完成时调用函数,您有使用回调。


根据要求更新了示例

function myFunction(callback) {
    var v1, v2;
    // do your stuff and fill the variables.

    // Call the callback with filed variables
    callback(v1, v2);
}

function callbackFunction(a, b) {
    alert(a + " - " + b);
}

myFunction(callbackFunction);

【讨论】:

  • 感谢 Chamika,这很有帮助。但是一个例子会让我更清楚。谢谢。
  • @user2745266,请参阅更新的答案以获取示例。
  • 非常感谢@Chamika 的帮助。
  • @user2745266,希望您在符合条件后接受答案。
【解决方案2】:

你有一个类似的功能

function addNumbers(nr1, nr2){

  return nr1+nr2;

}

然后每次您想添加例如 2+5 时,您只需调用 addNumbers(2, 5),它将返回 7

函数addNumbers是一个回调函数

【讨论】:

    【解决方案3】:

    函数就像分配给变量的任何其他数据一样,可以定义、删除、复制。

    它们在以下情况下很有帮助

    • 它们让您无需命名即可传递函数(这意味着全局变量更少)

    • 您可以将调用一个函数的责任委托给另一个函数(这意味着要编写的代码更少)

    • 他们可以帮助提高性能

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-27
      • 2021-08-24
      • 2014-07-02
      相关资源
      最近更新 更多