记住一句话:函数执行的时候是可以传参的
function fn(a){
// console.log(a)
a(function(c){
console.log("bbb")
c(function(){
console.log("ddd")
});
});
}
fn(function(b){
console.log("aaa");
b(function(d){
console.log("ccc");
d();
});
})
在补点参数知识:加深理解
.函数的入口 - 参数
- 实参:要传入的数据
- 形参:用来接收传入的数据的变量
- 个数和类型:任意个任意类型的参数
- 实参和形参的对应关系,从左向右一一对应
- 当一个函数fn1作为参数传入到另一个函数B中,在函数fn2中,执行,那么作为参数的函数fn1,叫回调函数
1.下面fn()值是要传入a(形参接收数据)的 ,因为此时fn括号里是个函数(无名函数),所以此时a也就成为了一个函数,是函数是可以执行的(也可以传参)所以可以 a()如果不明白,可以console.log(a)看一下。
2.a的()里又套了个函数,函数可以执行,所以我们可以让a传参对吧,传参要接收吧,接收要有东西接收吧(说的就是形参),所以b(形参)就出来了,b的形参是写成函数的形式接收,b里的函数要执行吧,所以又可以传参,所以c(形参)就出来了。
核心:函数执行,可以传参,这个也是无名函数的传递,实参与形参的传递(疯狂套娃)。