前言
回调函数是常见的函数,但其实很容易理解。
详解
首先我们看一下我们最熟悉的普通函数的定义和调用。
函数映射(c) { console.log(c);}map(5);
这是最常见的函数,定义此函数时必须指定方法并传递变量。
接下来,换个思路,为函数指定变量,并在传递方法时将方法b 设置为形参。
var map=function (b) { b(4);} 现在我们知道调用函数map时需要传递方法,我们按照定义传递方法。
map( function(a) { console.log(a);} ); 目前,这个方法也被称为匿名函数,所以如果你在这里调用map方法,你可以命名它。缩写为
地图((a)={ console.log(a);});
当你打印4时,红框中的内容就是你传递的参数,它只是一个函数。也就是说,红框里面的内容就等于上面的形参b。如果使用红框中的函数替换b,您将得到console.log(4)。
二次回调函数
我们来看一个二次回调的例子
前面,我们在定义函数时指定变量是常量,但是如果我们用匿名函数替换这个常量会发生什么呢?
var map=function (b){ b( (a)={ console.log(a); } );}; 可以看到4已经被替换成了函数,但是map方法怎么调用呢?
换个角度思考,你可以认为当你调用函数映射时,你需要传递一个参数,并且该参数已经存在于b 中,但你缺少一个变量。回调函数如上所述。在函数部分,此时我们传递定义变量的方法。参数是方法。这对应于回调函数的函数定义部分。
map( function (e) { e(6);} ); 缩写为map( (e)={e(6);} );
此时,即使替换掉b后,红框内的内容也和上面的形参b是等价的,而替换掉e后,也只剩下了蓝框内的一项内容。最终要表达的打印方法console.log(6);
总结
基于二次回调函数的思想,可以无限回调。但是,您很少使用多个回调函数。
你需要扎实掌握基础知识才能理解整个代码。
原创文章,作者:小条,如若转载,请注明出处:https://www.sudun.com/ask/87173.html