回调函数(简单易懂)
因为今天又遇到新的回调函数的形式
callback && callback();
所以搜了一下回调函数,发现真的好多人写得好复杂啊,看得我昏昏欲睡还是看不懂,还有看到有的人说是 主函数执行完再去执行回调函数,我顿时无语,直接看下面普通函数与回调函数的区别你就懂了
普通函数与回调函数的区别:
对普通函数的调用:调用程序发出对普通函数的调用后,程序执行立即转向被调用函数执行,直到被调用函数执行完毕后,再返回调用程序继续执行。从发出调用的程序的角度看,这个过程为“调用–>等待被调用函数执行完毕–>继续执行”
对回调函数调用:调用程序发出对回调函数的调用后,不等函数执行完毕,立即返回并继续执行。这样,调用程序执和被调用函数同时在执行。当被调函数执行完毕后,被调函数会反过来调用某个事先指定函数,以通知调用程序:函数调用结束。这个过程称为回调(Callback),这正是回调函数名称的由来。
简单的一个例子,转载
var name = 'shimily';var age = 20;//主函数function goTime(callback) {console.log('hello');callback && callback(); //有回调就执行,没有回调就不执行console.log(age,'=========');}//回调函数function actEnd(){console.log(name); }/*调用方法*/goTime(); //如果不传方法,则代表不需要执行回调goTime(actEnd); //test是个方法,此处可以打印出test的值
程序在执行主函数的时候,当执行到callback && callback();时,有回调就执行,没有回调就不执行,我们这里的回调函数是actEnd(),当时注意!这里执行回调函数actEnd()的时候,主函数还是在执行的
实战例子:
//回调函数
getFirstCategoryData(function (data) {/*一级分类默认渲染*//*模版的使用顺序:json数据,定义模版,调用模版,返回html*/$('.cate_left ul').html(template('firstTemplate',data));/*绑定事件*//*initSecondTapHandle();*//*第一个一级分类对应的二级分类*/var categoryId = $('.cate_left ul li:first-child').find('a').attr('data-id');render(categoryId);});//主函数
var getFirstCategoryData = function (callback) {$.ajax({url:'/category/queryTopCategory',type:'get',data:'',dataType:'json',success:function (data) {callback && callback(data);}});
};
之前写的有关于回调函数的理解
回调函数(简单易懂)相关推荐
- 【转】JS回调函数--简单易懂有实例
JS回调函数--简单易懂有实例 初学js的时候,被回调函数搞得很晕,现在回过头来总结一下什么是回调函数. 我们先来看看回调的英文定义:A callback is a function that is ...
- JS回调函数——简单易懂有实例
初学js的时候,被回调函数搞得很晕,现在回过头来总结一下什么是回调函数.什么是JS?(点击查看) 下面先看看标准的解释: <script language="javascript& ...
- 回调函数 简单理解
初学js的时候,被回调函数搞得很晕,现在回过头来总结一下什么是回调函数. 我们先来看看回调的英文定义:A callback is a function that is passed as an arg ...
- Python 回调函数的简单实例
实例一: def func_add(x):return 2+xdef func_cll(x, func):return 1 + func(x)num = 2print(func_cll(num, fu ...
- 理解与使用Javascript中的回调函数
在Javascript中,函数是第一类对象,这意味着函数可以像对象一样按照第一类管理被使用.既然函数实际上是对象:它们能被"存储"在变量中,能作为函数参数被传递,能在函数中被创建, ...
- 回调函数到底是怎么一回事呢
今天看到回调函数,有点迷糊,找了好多搜索引擎的资料,都不是让我很能理解,看了<c和指针>我才明白了. 简单描述一下什么是回调函数: 用户把一个函数指针作为参数传递给其他函数,后者将&quo ...
- 【JavaScript】理解与使用Javascript中的回调函数
在Javascript中,函数是第一类对象,这意味着函数可以像对象一样按照第一类管理被使用.既然函数实际上是对象:它们能被"存储"在变量中,能作为函数参数被传递,能在函数中被创建, ...
- 回调函数,回调函数,回调函数,什么是回调函数
文章 目录 简介 一.回调函数是什么? 二.回调的demo 1.异步回调 2.安卓中的回调onclick 简介 问题引入: 在一个下载系统中,我要实现文件的下载和下载进度的显示.学习过面向对象的人来说 ...
- canvas学习day3——加载图片loadImage函数,理解回调函数
回调函数 回调函数理解 你到一个商店买东西,刚好你要的东西没有货,于是你在店员那里留下了你的电话,过了几天店里有货了,店员就打了你的电话,然后你接到电话后就到店里去取了货.在这个例子里,你的电话号码就 ...
- 回调函数必须要用static的原因
在之前的一篇回调函数简单例子中就写了一个简单的回调小例子,这里补充一下. 一个对象的this指针并不是对象本身的一部分,不会影响sizeof(对象)的结果.this作用域是在类内部,当在类的非静态成员 ...
最新文章
- Oracle:ORA-12560和ORA-01031
- Go语言封装Http协议GET和POST请求
- Ubuntu下mysql字符集设置
- Oracle的NVL函数
- 动态时间规整_动态规划-数组系列(10%)
- android 获取手机运行的进程
- C++语法:求vector中的最大值及其位置
- win7系统office向程序发送命令时出现错误
- 优先级队列——实现二维数组排序
- centos查看文件修改历史_Linux环境下查看历史操作命令及清除方法
- fopen php 读取_PHP fopen读取url内容
- HDU 4738 无向图求桥
- python中localtime和gtime的区别及时区计算的代码
- 【人工智能】2.博弈问题、博弈搜索策略
- windowsPE制作工具
- CVE-2021-42287、CVE-2021-42278域内提权漏洞
- error: cannot lock ref ‘refs/remotes/origin/release/xxxx‘: ‘refs/remotes/origin/release‘ 已存在,无法创建
- appcan中的微信分享与qq分享
- 未能找到下列包文件: C:\Users\Administrator\Desktop\DotNetFX40\dotNetFx40LP_Full_x86_x64zh-Hans.exe
- python编写MySQL数据库查询/操作软件代码
热门文章
- 宝塔上限制国内IP访问你的网站
- 论文阅读_基于知识的提示学习KnowPrompt
- chatgpt赋能python:Python图片处理教程
- 一次函数的概念、性质及函数图象特征
- 关于 java.library.path、classpath、path 以及 java 程序一些依赖相关的理解
- 易语言5.11破解精简版
- 替换android的hal支持阵列麦拾音
- pytorch 定义dice_coeff, SoftDiceLoss,BCELoss2d损失函数
- 人工智能可以自己学习吗?自学AI怎么样?
- 【精品课设】不同优化算法整定PID控制参数