js中回调函数总结

函数也是对象,可以理解为字符串序列化的对象

普通的定义函数,先定义变量,再指向一个函数

var foo=function(arg1,arg2){

return arg1+arg2;

}

console.log(foo(2,3));//执行后结果输出为5

 

我们也可以写成另外一种形式,构建一个Function对象

var foo=new Function("arg1","arg2","return arg1+arg2;");或var foo=Function("arg1","arg2","return arg1+arg2;");

console.log(foo(2,3));//执行后结果输出也为5

 

回调函数就是把函数作为一个参数对象传递给另外的函数调用

基本方法

function callbackFoo(){
console.log("this is callback");
}
function foo(callback){
console.log("this is foo");
callback();
}
foo(callbackFoo);

######log  输出#######

this is foo
this is callback

#####################

 

匿名函数方法

function foo(callback){
console.log("this is foo");
callback();
}
foo(function(){console.log("this is callback");});

######log  输出#######

this is foo
this is callback

#####################

带参数的回调函数

方法1

function callbackFoo(n){
console.log("this is callback,arg is:"+n);
}
function foo(arg,callback){
console.log("this is foo");
callback(arg);
}
foo(1,callbackFoo);

######log  输出#######

this is foo
this is callback,arg is:1

#####################

 

方法2

function callbackFoo(n){
console.log("this is callback,arg is:"+n);
}
function foo(callback){
console.log("this is foo");
callback();
}
foo(function(){callbackFoo(2);});

######log  输出#######

this is foo
this is callback,arg is:2

#####################

 

以上举例回调函数都是同步调用,在JS中,还可以作为异步调用,例如利用ajax访问页面的异步处理。

posted on 2017-09-06 14:19  wudymand  阅读(203)  评论(0编辑  收藏  举报

导航