return方式:
function getState(obj){
var result = {
//获取obj的某些属性
}
return result;
}
callback方式:
function getSate(obj,callback){
var result = {
//获取obj的某些属性
}
callback&&callback(result);
}
第一种我可以通过这种方式来拿到state然后处理:
var result = getState(obj);
第二种我可以通过回调函数:
getState(obj,function(result){
//处理result
})
有时候两种方式均可以达到目的,那么这个时候该把这个函数设计为return方式还是callback方式呢?
二者是否有效率上的区别?或者在设计一个函数的时候,哪些特定的场景该用特定哪一个方式呢?
谢谢。
看你的使用场景
1.如果你的函数中执行的操作是异步的,那么需要传入其它函数作为异步执行结果的回调函数
2.如果你的函数是同步执行函数,需要其它外部函数的辅助完成功能,那就传入函数作为辅助函数使用
3.如果你的函数是同步执行函数,不依赖其它函数就可以完成功能的话,那么直接返回结果就好
4.当然即使你的函数式同步执行的,也可以传入函数,作为函数执行结果的传递通道,但是这个用法会让人误以为是异步执行的
不用那么纠结,接口清晰明了就好~~~