WEB前端

js 回调函数 callback说明

位置:首页 > WEB前端 > js教程,2018-08-11 10:44
将一个函数当作参数传给另一个函数,被传的函数叫做回调函数,主要的用意就是当主函数完成后再去执行回调函数。传统函数以参数形式输入数据,并且使用返回语句返回值。理论

将一个函数当作参数传给另一个函数,被传的函数叫做回调函数,主要的用意就是当主函数完成后再去执行回调函数。传统函数以参数形式输入数据,并且使用返回语句返回值。理论上,在函数结尾处有一个return返回语句,结构上就是:一个输入点和一个输出点。这比较容易理解,函数本质上就是输入和输出之间实现过程的映射。  但是,当函数的实现过程非常漫长,你是选择等待函数完成处理,还是使用回调函数进行异步处理呢?这种情况下,使用回调函数变得至关重要,例如:AJAX请求。若是使用回调函数进行处理,代码就可以继续进行其他任务,而无需空等。callback是回调函数。函数有call和apply方法。可以在函数执行时动态的绑定上下文。函数的上下文主要影响函数中的this对象。

正常情况下this对象是根据运行上下文自动指定的。但是用call方法或者apply方法可以手动设置上下文。相当于可以随意调整函数中的this对象指向谁。

如:

function f1(f2) { alert("我是f1"); if (f2 && typeof(f2) === "function") { settimeOut(function(){f2()},1000) ;//f1执行1s后f2执行 } alert("我又是f1 哈哈");}

调用执行f1(function(){ alert("我是f2");})

或这样调用function f2(){alert("我是f2");}f1(f2);

//结果:我是f1 ,我是f2,我又是1 哈哈

另一例子

function fn(arg1, arg2, callback){

var num = Math.ceil(Math.random() * (arg1 - arg2) + arg2);

callback(num);  //传递结果

}

fn(10, 20, function(num){

console.log("Callback called! Num: " + num);

});    //结果为10和20之间的随机数

TAGS:js 回调函数js callback

猜你喜欢

NewHot