JavaScript:将函数作为参数传入,作为回调函数
functiondoSomething(args,callback){somethingComplicated(args);callback();}doSomething...
function doSomething(args,callback){
somethingComplicated(args);
callback();
}
doSomething(function onEnd(){
compute();
});
湖上这个代码是不是有问题呢?这样调用doSomething,里面传入的函数会被当做第一个参数args,而不会映射到第二个形参callback啊,岂不是不对?费解 展开
somethingComplicated(args);
callback();
}
doSomething(function onEnd(){
compute();
});
湖上这个代码是不是有问题呢?这样调用doSomething,里面传入的函数会被当做第一个参数args,而不会映射到第二个形参callback啊,岂不是不对?费解 展开
2个回答
展开全部
调用函数时, 传递入的参数与顺序必须按照函数声明来排列, 所以调用doSomeThing时:
function doSomething(args,callback){
somethingComplicated(args);
callback();
}
//第一个参数如果不需要传递,可设置为null
//function onEnd(){} 这种方法通常是声明拦滚一个函数, 将函数作简森余为参数传递可直接传递函数名称,或者传递匿名函数
//传递函数名称
function onEnd(){
//code
}
doSomething(null, onEnd);
//传递匿春厅名函数
doSomething(null,function(){
compute();
});
展开全部
你可以改写猜缓doSomething函数的实现,如穗码模果第一个入参是函数就认为是回调模芹函数,要看你想实现什么功能。
function doSomething(args,callback){
somethingComplicated(args);
if(arguments.length==1 && 'function'==typeof args){
callback = args;
}
if(callback) callback();
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询