2

#yyds干货盘点#js中回调函数

 1 year ago
source link: https://blog.51cto.com/u_11365839/5881767
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

#yyds干货盘点#js中回调函数

精选 原创

简单来说:一个被当做参数的函数,就叫做回调函数。

在JavaScript中,所有的函数都是对象,所以函数也可以作为参数传递给另一个函数。

在MDN的解释中是这样吗说的:被作为一种实参传入另一个函数中,并且在该外部函数内被调用,来完成某些任务,这样的函数就是回调函数。

在MDN的定义中,有以下几点可能比较难以理解:

  1. 什么是实参
  2. 在该外部函数内调用是什么意思

接下来我将解释这两点问题

什么是实参

在JavaScript函数中,我们定义函数时括号里面的那几个参数就叫做形参,而我们调用函数时,所传入的参数就叫做实参。

function add(a, b) { **
return a + b;
}

add(1, 2); // 3
复制代码

这段代码中的​​a​​,​​b​​就是形参,在​​**​​这一行,此时的​​a​​,​​b​​没有实际的值,它存在的意义就是定义变量,将调用函数时传入的参数带入函数内部运算。

当我们调用函数时,传入的参数就是实参,实参的值会被赋值给形参,然后在函数内部运算。

在该外部函数内调用是什么意思

我们假设回调函数为​​A​​​,调用回调函数的函数为​​B​​,此时A作为参数传入B,那么B相对于A就是一个外部函数,然后A函数作为参数传入B之后,完成自己的任务后结束。这就是回调函数的使命。

回调函数有什么作用

在js中有很多第三方函数,可以帮助我们快速完成任务,但是很多第三方函数我们却不能随意更改他们的内部实现代码,比如​​forEach​​,但是有了回调函数,我们就可以将自己写的函数,作为实参传入第三方函数,从而达到改变或者增加第三方函数功能的目的。

回调函数的使用

setTimeout(function() {
console.log('hello world');
}, 1000);
复制代码

上面代码中,我们直接将回调函数写在了​​setTimeout​​函数的参数中,这样就可以在​​setTimeout​​函数内部调用回调函数了。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK