js回调函数--callback

简介: js回调函数--callback

1. 回调函数是什么

回调函数就是函数A执行完之后,有一个函数B用来做其他的事情。

一般是将函数B,作为参数,传入到函数A中。

2.实现方法

2.1 使用命名函数

function A(callback){
  console.log("A执行")
  callback();
}
function B(){  //B是回调函数
  console.log("B执行");
}
// 使用
A(B); //这里的B没有括号。
// 输出
A执行 
B执行

2.2 匿名回调函数

function A(num1, num2, callback){ 
  var sum = num1 + num2; 
  callback(sum); 
 } 
 // 使用
A(1, 2, function(sum){ 
  console.log(sum); 
 });
 // 输出
 3

3.使用含有this对象的回调函数

var obj={
  name:"",
  setName:function(name){
    this.name=name;
  }
}
function A(name,callback){
  callback(name);
}
//调用
A('syl',obj.setName);
//检测
window.name;
输出:"syl"
//检测
obj.name;
输出:""

本来我们是希望obj的name是“syl”,但是却没有,这是因为A函数属于全局环境,导致name属性的也属于全局环境。所以我们需改变name的环境,即改变this的环境。

var obj={
  name:"",
  setName:function(name){
    this.name=name;
  }
}
function A(name,callback,obj){
  callback.call(obj,name);
}
//调用
A('syl',obj.setName,obj);
//检测
window.name;
输出:""
//检测
obj.name;
输出:"syl"
一个很好的例子:

比如爬楼梯,你要成功爬上1楼,才能爬2楼,然后三楼

function floors(isSuccess,callback ){
  if (isSuccess) { // 如果成功就执行回调函数
    callback();
  }
}
function pa1() { // 爬一楼
  //todo: ...
  console.log('爬一楼');
  return true;
}
function pa2() {
  //todo: ...
  console.log('爬二楼');
  return true;
}
floors(pa1(),function() {
    floors(pa2(), function(){
        floors(3, function(){
            console.log('ok')
        })
    })
})
原文:https://blog.csdn.net/wangweiscsdn/article/details/84000826 

半夏话前端

                 微信公众号                  

帮助更多人成长!

已关注

相关文章
|
7月前
|
JavaScript 前端开发 Go
动态加载与异步加载 JavaScript 详解:加载远程js,加载成功后执行回调函数
动态加载与异步加载 JavaScript 详解:加载远程js,加载成功后执行回调函数
1404 2
|
7月前
|
JavaScript 前端开发 UED
在 JavaScript 中,异步编程和回调函数是处理非阻塞操作(如网络请求、文件读写等)的重要工具
【5月更文挑战第10天】JavaScript中的异步编程和回调函数用于处理非阻塞操作,提高应用响应性和吞吐量。异步编程通过回调函数、Promises和async/await等方式实现,避免程序因等待操作完成而阻塞。回调函数是异步操作完成后调用的函数,常用于处理网络请求等。然而,回调函数存在嵌套问题和错误处理困难,因此出现了Promises和async/await等更优解决方案。
56 3
|
2月前
|
JavaScript API
Node.js 回调函数
10月更文挑战第3天
21 0
|
4月前
|
SQL JavaScript 前端开发
【Azure 应用服务】Azure JS Function 异步方法中执行SQL查询后,Callback函数中日志无法输出问题
【Azure 应用服务】Azure JS Function 异步方法中执行SQL查询后,Callback函数中日志无法输出问题
|
6月前
|
存储 前端开发 JavaScript
回调函数是JavaScript中处理异步编程的常见模式,常用于事件驱动和I/O操作。
【6月更文挑战第27天】回调函数是JavaScript中处理异步编程的常见模式,常用于事件驱动和I/O操作。它作为参数传递给其他函数,在特定条件满足或任务完成后被调用。例如,`asyncOperation`函数接受回调函数`handleResult`,模拟异步操作后,调用`handleResult`传递结果。这样,当异步任务完成时,`handleResult`负责处理结果。
43 1
|
5月前
|
JavaScript 前端开发 API
Node中的AsyncLocalStorage 使用问题之Node.js将 JavaScript 层的 nativeHooks 注册到 C++ 层的问题如何解决
Node中的AsyncLocalStorage 使用问题之Node.js将 JavaScript 层的 nativeHooks 注册到 C++ 层的问题如何解决
|
6月前
|
前端开发 JavaScript
JavaScript异步处理避免了单线程阻塞,如回调函数、Promise和async/await。
【6月更文挑战第22天】JavaScript异步处理避免了单线程阻塞,如回调函数、Promise和async/await。回调是基础,用于在操作完成后执行函数;Promise管理异步状态,支持链式调用;async/await提供同步代码外观,简化错误处理。每种技术在处理耗时任务时都起着关键作用。
61 3
|
6月前
|
前端开发 JavaScript 开发者
JavaScript基础-异步编程:回调函数
【6月更文挑战第12天】本文介绍了JavaScript中的异步编程基础,重点讨论回调函数。回调函数是处理延迟操作的关键,常见于事件监听、定时器、Ajax请求和文件操作。然而,它们可能导致回调地狱、错误处理不一致和控制流混乱等问题。为了解决这些问题,文章推荐使用Promise链、async/await来扁平化异步逻辑,并提供了相关代码示例,强调了现代JavaScript特性的优势,以提升代码可读性和可维护性。
109 7
|
6月前
|
JavaScript API
Node.js 回调函数
Node.js 回调函数
33 1
|
6月前
|
前端开发 JavaScript 开发者
JavaScript异步编程艺术:深入浅出回调函数与异步挑战【含代码示例】
本文深入解析JavaScript异步编程,重点探讨回调函数和异步挑战。在单线程的JavaScript中,异步编程至关重要,回调函数是其基础。然而,回调地狱问题催生了Promise和async/await的出现。文章提供代码示例展示Promise和async/await的使用,并分享异步编程最佳实践,包括错误处理、资源管理和性能优化。遇到问题时,建议通过明确异步流程、逐步调试和异常捕获来解决。最后,文章强调异步编程的未来发展,鼓励开发者掌握最新工具并探讨更高效的异步解决方案。
80 2