JS中的callback

  • 时间:2018-06-06 01:46 作者:沃普号 来源:沃普号 阅读:390
  • 扫一扫,手机访问
摘要:代码的世界将一个函数当作参数传给另一个函数,被传的函数叫做回调函数,主要的使用意就是当主函数完成后再去执行回调函数。传统函数以参数形式输入数据,并且用返回语句返回值。理论上,在函数结尾处有一个return返回语句,结构上就是:一个输入点和一个输出点。这比较容易了解,函数本质上就是输入和输出之间实现过

JS中的callback

代码的世界

将一个函数当作参数传给另一个函数,被传的函数叫做回调函数,主要的使用意就是当主函数完成后再去执行回调函数。传统函数以参数形式输入数据,并且用返回语句返回值。理论上,在函数结尾处有一个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之间的随机数

  • 全部评论(0)
最新发布的资讯信息
【系统环境|windows】字节跳动前台面试题解析:盛最多水的容器(2021-03-20 21:27)
【系统环境|windows】DevOps敏捷60问,肯定有你想理解的问题(2021-03-20 21:27)
【系统环境|windows】字节跳动最爱考的前台面试题:JavaScript 基础(2021-03-20 21:27)
【系统环境|windows】JavaScript 的 switch 条件语句(2021-03-20 21:27)
【系统环境|windows】解决 XML 数据应用实践(2021-03-20 21:26)
【系统环境|windows】20个编写现代CSS代码的建议(2021-03-20 21:26)
【系统环境|windows】《vue 3.0探险记》- 运行报错:Error:To install them, you can run: npm install --save core-js/modules/es.arra...(2021-03-20 21:24)
【系统环境|windows】浅谈前台可视化编辑器的实现(2021-03-20 21:24)
【系统环境|windows】产品经理入门迁移学习指南(2021-03-20 21:23)
【系统环境|windows】初识webRTC(2021-03-20 21:23)
血鸟云
手机二维码手机访问领取大礼包
返回顶部