1)通过返回值
同步 直接调用 方法
function add(a,b){
result a+b;
}
var result = add(1,2);//1+2=3
console.log(result);//3
2)通过回调函数
异步
function add(a,b){
setTimeout(function(){
let result = a+b;
return result;
},3000)
}
var result = add(1,2);//1+2=3
console.log(result);//undefined
对于异步操作的话,如果还用返回值接收参数就会输出undefined。这是因为你在执行console.log(result)的时候,add(1,2)还没有执行,所以会得到undefined。那么该如何在异步操作中获取到运行结果呢?
使用回调函数
function add(a,b,handler){
setTimeout(function(){
let result = a+b;
handler(result);
},3000)
}
add(1,2,function(result){
console.log(result)
});
过将函数作为参数,传递到异步操作中去,只有当异步操作执行的时候,回调函数才能执行。这样就可以从异步操作中获取到值了。