对于刚学JS的初学者来说(包含我当初的本人),对于这个回调函数真的是踩坑有数,于是乎想作为一个淋过雨的人,想为前面刚入门的人打一把伞。

本文不会用业余的常识词汇,只会用书面语来简略让你有一个概念帮你浅浅的了解这个名词,如果你是一个学习JS刚遇到这个名词,正处于一脸懵逼的状态,那么本文对于会有帮忙,但如果你想要钻研更深层次的原理,用法和含意,可能本文不适宜你。

废话不多说,让咱们先看MDN的解释。

这段话,首先咱们要搞懂一个货色,什么是实参。

咱们都晓得,函数能够承受参数,形参和实参。那么什么是形参呢?

置信大家曾经在有数网站看到过有数过这个例子了,计算两个数字的和,然而丝毫不影响它的经典简略易懂。

那么当你在定义这个函数的时候,A,B就是形参。参数能够拿来用,你也能够不必。形   参,模式上的参数,并没有实际意义,只是帮你实现函数外部逻辑运算而设置的。

那么什么是实参呢?

还是这段代码,当你调用函数的时候,这个1,2就是实参。

对于刚入门的你能够暂不深究,你能够这样简略的了解。

OK,那么咱们回过头来钻研咱们的题目内容:什么是回调函数。

 

 

 说人话就是, 一个函数A,作为另一个函数B的参数,那么函数A就被称为回调函数。

对,回调函数A就是一个普普通通的函数,它被其余函数B作为参数在B的外部调用,那么在这个时候A能力被称为B的回调函数。

回调函数这个概念是互相的,一个独自的函数是无奈叫做回调函数的,它只能被称为XXX(被谁在外部调用)的回调函数。我置信大部分人都是蛊惑在这里了。咱们再举一个栗子。

 咱们常常会在教程视频中听到setTimeout函数的解释是这样的,setTImeout接管一个回调函数作为参数........的确这句话对于刚开始学习到这一步的我真的是一脸懵逼,什么是回调函数?我去,之前怎么没遇到过,什么玩意啊?

大家不要忘了setTimeout自身就是一个函数,它就是咱们刚刚在下面说的函数B,那么函数A就是这个货色:

所以这句话正确的语意应该是:setTimeout作为一个函数B,它接管另一个函数A作为它的参数来应用。设计者想了想,这样说如同 太麻烦,于是就把函数A叫做回调函数。(函数A叫做函数B的回调函数!!!)

自己也是首次学习JS,仅代表集体意见,如有谬误,还望各位大佬指教,我定虚心改过。