希望了解javascript

时间:2016-02-19 11:16:27

标签: javascript html

我是学习JavaScript的新手。我读到了关于回调函数但我无法理解其实际用途。

所以,请帮助任何现实世界的例子。

以下是描述回调函数使用的小代码,但我也不清楚。

var friends = ["Mike", "Stacy", "Andy", "Rick"];
​
friends.forEach(function (eachName, index){
    console.log(index + 1 + ". " + eachName); // 1. Mike, 2. Stacy, 3. Andy, 4. Rick​
});

5 个答案:

答案 0 :(得分:1)

JavaScript回调函数的用途很多。您可能已经知道它只是一个函数,我们将其作为参数传递给另一个函数。这意味着我们可以拥有一个名为foo的函数。让我们说foo是某种通过排序运行数组的方法,但实际的排序函数是可变的。所以我们可以通过简单地传递这样的值来为每个算法使用foo

foo([1,6,1,2], quickSort);

假设我们有一个quickSort方法。

一般来说,回调用于在函数执行后调用某些东西。那你为什么不一个接一个地调用一个函数呢?

foo();
bar();

为什么要将bar传递给foo?好吧,通常在处理异步时使用回调。因此,bar函数将在之前被调用,比如AJAX请求获得响应,或者在setTimeout触发它的回调之前。

至于您提供的具体示例,它只是迭代数组的简化方法。您还可以使用命名函数,这样您就可以更早地声明它并更好地分离代码。

答案 1 :(得分:0)

Javascript通常是同步的,即命令是一个接一个地执行的。

但是,有时你希望函数是异步的,所以你要调用一个函数,并且在进行下一个任务之前不想等待它完成。

异步函数使用回调。当函数完成时,将运行回调函数,而其余代码不必等待它。

答案 2 :(得分:0)

var friends = [" Mike"," Stacy"," Andy"," Rick"]; friends.forEach(function(element,index,array){console.log((index + 1)+"。" + element);});

答案 3 :(得分:0)

JavaScript中Callbacks的概念是你可以为变量分配函数。

在JavaScript中,除了作为字符串和数字的简单类型之外,它们是对象(甚至那些具有被调用函数的对象也是如此)。

让我们以你的函数为例,例如:

  

语法

arr.forEach(callback[, thisArg])
     

参数

callback
     

为每个元素执行的函数,带有三个参数:

currentValue
     

数组中正在处理的当前元素。

    index
     

数组中正在处理的当前元素的索引。

    array
     

正在应用forEach的数组。

thisArg
     

可选。执行回调时要使用的值。

它需要为每个元素调用一个回调函数。

此外,我们在JS中有异步调用的定义(借助超时/间隔和AJAX调用)。

回调函数的想法不仅仅停留在JS中。使用作为参考传递的函数将更简单或更简单,我们有回调的概念(它只是在js中使用AJAX的这个特性而疯狂,这就是为什么说JS是异步的常见原因)。

你可以在这里阅读更多关于它的信息: http://www.sitepoint.com/javascript-goes-asynchronous-awesome/

答案 4 :(得分:-1)

在JavaScript中,下面的函数是一个对象:

function (eachName, index){
  console.log(index + 1 + ". " + eachName); // 1. Mike, 2. Stacy, 3. Andy, 4. Rick​
}

我们打电话给object A。 当您传递代码friends.forEach(A)时,浏览器会理解,在array friends运行时,它会触发A

所以最后,回调函数就像你“定义”函数一样,但你稍后会使用它。