什么是回调函数呢?
在js中,当一个函数可以作为另一个函数的参数时,这个作为参数的函数被称为回调函数,并且以回调函数作为参数的函数称为主函数。
回调函数的简单格式:
function main(callback){
callback(参数);
}
main(function callback(参数){})
一个回调函数的简单例子:今天中午吃啥饭?lunch为吃饭的种类,scale为吃的概率。
function getEat(lunch,scale,callback){ var temp = Math.random(); console.log(temp); if(scale<temp){ console.log('今天中午吃 ${lunch}'); temp = lunch; } else { console.log('今天中午不吃 ${lunch}'); temp = false; } setTimeout(() =>{ callback(temp); }, 1000); } getEat("鱼香茄子",0.4,(temp) =>{if(temp){ console.log("最终午饭吃鱼香茄子"); return; } else{ getEat("米饭",0.3,(temp) => { if(temp) { console.log("最终午饭吃米饭"); } else{ return; } }) } })
最终结果有点小问题,是因为我的编译器不识别箭头函数,因此结果调用有问题,但代码是正确的。浏览器每次刷新后,它的结果都会不一样。