当前位置: 首页 > news >正文

理解JavaScript中的回调函数

理解回调函数,首先要知道在JavaScript中,函数也是对象,它可以赋值给变量,也可以作为参数传递给另一个函数。比如:

var add=function(a,b){
   console.log(a+b); 
};
//3
add(1,2);

这里定义了一个变量add,然后将一个匿名函数赋值给了这个变量;

接下来演示将函数作为参数传递给另一个函数,换句话说就是:将一个函数放在另一个函数(如 parent)的参数列表中,作为参数传递给parent,然后在parent函数体的某个位置执行它。其实这也就是回调函数了。看个小栗子:

var fun=function(callback){
    var a=1,b=2,c=3;
    var s=callback(a,b,c);
    return s;
};
//调用fun
var t=fun(function(x,y,z){ return (x+y+z); }); //6 console.log(t);

首先是定义函数fun,fun有个参数callback(名字可以随便取嘛),在调用fun函数之前,并不知道这个callback是个什么;调用时给它传递的是个函数 function(x,y,z){return (x+y+z);}作为参数,所以s的值就为返回的三个数相加的值。这就是个简单的使用回调函数的过程。

 

转载于:https://www.cnblogs.com/lazychen/p/5285236.html

相关文章:

  • hdu 5640 King's Cake(模拟)
  • 2、Python语法基础
  • Python基础教程第二版 6:抽象
  • UnicodeEncodeError: 'ascii' codec can't encode
  • 【Android 学习】 Android反编译
  • 【转】Java 中的 i = i++
  • 在我lenovo上装windows10
  • Shell编程
  • 构建自己的PHP框架--创建组件的机制
  • 闲扯 『 document.write 』
  • 【vSphere故障案例】案例九:ESXi主机HA未配置错误
  • 在Mac上关于tomcat服务器的安装、配置、启动、部署web详细流程
  • git分享(二)git checkout
  • Android源码大放送之material design类型
  • 国内收益最高的聚合平台--KeyMob移动广告聚合平台
  • 【腾讯Bugly干货分享】从0到1打造直播 App
  • Android框架之Volley
  • Android优雅地处理按钮重复点击
  • JAVA并发编程--1.基础概念
  • MYSQL 的 IF 函数
  • MySQL数据库运维之数据恢复
  • Netty 4.1 源代码学习:线程模型
  • REST架构的思考
  • Spark学习笔记之相关记录
  • Vue.js-Day01
  • 翻译--Thinking in React
  • 关于 Cirru Editor 存储格式
  • 机器学习 vs. 深度学习
  • 一个JAVA程序员成长之路分享
  • 由插件封装引出的一丢丢思考
  • ​linux启动进程的方式
  • # 手柄编程_北通阿修罗3动手评:一款兼具功能、操控性的电竞手柄
  • (DFS + 剪枝)【洛谷P1731】 [NOI1999] 生日蛋糕
  • (floyd+补集) poj 3275
  • (Mirage系列之二)VMware Horizon Mirage的经典用户用例及真实案例分析
  • (附源码)spring boot基于小程序酒店疫情系统 毕业设计 091931
  • (三)mysql_MYSQL(三)
  • (三)终结任务
  • (收藏)Git和Repo扫盲——如何取得Android源代码
  • (算法)求1到1亿间的质数或素数
  • (心得)获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
  • (转) Face-Resources
  • (转)清华学霸演讲稿:永远不要说你已经尽力了
  • .net core 6 使用注解自动注入实例,无需构造注入 autowrite4net
  • .NET Micro Framework 4.2 beta 源码探析
  • .Net mvc总结
  • .Net Web项目创建比较不错的参考文章
  • .Net通用分页类(存储过程分页版,可以选择页码的显示样式,且有中英选择)
  • @property @synthesize @dynamic 及相关属性作用探究
  • [20170728]oracle保留字.txt
  • [Android]使用Git将项目提交到GitHub
  • [Angular] 笔记 18:Angular Router
  • [BT]BUUCTF刷题第8天(3.26)
  • [BZOJ] 1001: [BeiJing2006]狼抓兔子
  • [C#] 我的log4net使用手册