常常看到有初学JS的人问,JS中函数可否当做参数传递,答案是肯定的,而对于这样一个参数,应用最多的便是函数的回调。
或许很多做前端的都很少接触回调这个东西,因为很多简单的JS交互是不需要它的,但是,在模块化的JS代码中,它却是非常实用的。
举一个简单的例子:
/*作者:Vilic Vane 博客:www.vilic.info*/
function done(/*可以带参数*/)
{
alert(“Finished!”);
}
function task(afterFinishing)
{
//要处理的东西
afterFinishing(/*可以带参数*/);
}
task(done);
这段代码表达的意思便是,我要做一个任务(task),并且在任务完成后通知另一个函数(这里是done)。
当然,在这段简单的代码中,显然这样做是多此一举,但在复杂、追求可重用性的代码中,它却是有效且容易理解的。到此打住,下一篇将谈下另一种常用的函数传递,匿名函数的传递。