Javascript中的Callback方法浅析

 更新时间:2015年03月15日 10:33:43   投稿:junjie  
这篇文章主要介绍了Javascript中的Callback方法浅析,本文讲解了什么是callback、Javscript Callback、Callback是什么、Callback实例等内容,需要的朋友可以参考下

什么是callback

复制代码 代码如下:

 回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。

这个解释看上去很复杂,于是找到了知乎上一个更好的解释

复制代码 代码如下:

 你到一个商店买东西,刚好你要的东西没有货,于是你在店员那里留下了你的电话,过了几天店里有货了,店员就打了你的电话,然后你接到电话后就到店里去取了货。在这个例子里,你的电话号码就叫回调函数,你把电话留给店员就叫登记回调函数,店里后来有货了叫做触发了回调关联的事件,店员给你打电话叫做调用回调函数,你到店里去取货叫做响应回调事件。回答完毕。

在Javascript中:

复制代码 代码如下:

 函数A作为参数(函数引用)传递到另一个函数B中,并且这个函数B执行函数A。我们就说函数A叫做回调函数。如果没有名称(函数表达式),就叫做匿名回调函数。
实际上,也就是把函数作为参数传递。

Javscript Callback

把上面那些复杂的解释都丢到垃圾桶里吧~,看看Callback是什么

Callback是什么

在jQuery中, hide的方法大概是这样子的

复制代码 代码如下:

$(selector).hide(speed,callback)

使用的时候,
复制代码 代码如下:

$('#element').hide(1000, function() {
    // callback function
});

我们只需要在里面写一个简单的函数
复制代码 代码如下:

$('#element').hide(1000, function() {
    console.log('Hide');
});

有一个小小的注释在这其中:Callback 函数在当前动画 100% 完成之后执行。然后我们就可以看到真正的现象,当id为element的元素隐藏后,会在console中输出Hide。

就也就意味着:

Callback实际上是,当一个函数执行完后,现执行的那个函数就是所谓的callback函数。

Callback作用

正常情况下函数都是按顺序执行的,然而Javascript是一个事件驱动的语言。

复制代码 代码如下:

function hello(){
    console.log('hello');
}

function world(){
    console.log('world');
}

hello();
world();


所以正常情况下都会按顺序执行的,然而当执行world事件的时间比较长时。
复制代码 代码如下:

function hello(){
    setTimeout( function(){
        console.log( 'hello' );
    }, 1000 );
}

function world(){
    console.log('world');
}

hello();
world();


那么这个时候就不是这样的,这时会输出world,再输出hello,故而我们需要callback。

Callback实例

一个简单地例子如下

复制代码 代码如下:

function add_callback(p1, p2 ,callback) {
    var my_number = p1 + p2;
    callback(my_number);
}

add_callback(5, 15, function(num){
    console.log("call " + num);
});


在例子中我们有一个add_callback的函数,接收三个参数:前两个是要相加的两个参数,第三个参数是回调函数。当函数执行时,返回相加结果,并在控制台中输出'call 20'。

相关文章

  • JavaScript学习笔记之数组求和方法

    JavaScript学习笔记之数组求和方法

    这篇文章主要介绍了JavaScript学习笔记之数组求和方法的相关资料,需要的朋友可以参考下
    2016-03-03
  • js实现七夕表白弹幕效果 jQuery实现弹幕技术

    js实现七夕表白弹幕效果 jQuery实现弹幕技术

    这篇文章主要介绍了js实现七夕表白弹幕效果,jQuery实现弹幕技术,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • 基于redis的小程序登录实现方法流程分析

    基于redis的小程序登录实现方法流程分析

    这篇文章主要介绍了基于redis的小程序登录实现流程分析,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-05-05
  • JavaScript canvas绘制圆形加载进度条

    JavaScript canvas绘制圆形加载进度条

    这篇文章主要为大家详细介绍了JavaScript canvas绘制圆形加载进度条,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-06-06
  • 使用threejs实现第一人称视角的移动的问题(示例代码)

    使用threejs实现第一人称视角的移动的问题(示例代码)

    第一人称视角的场景巡检主要需要解决两个问题,人物在场景中的移动和碰撞检测。移动与碰撞功能是所有三维场景首先需要解决的基本问题,今天我们就通过最基本的threejs来完成第一人称视角的场景巡检功能,感兴趣的朋友一起看看吧
    2022-02-02
  • 原生javascript图片自动或手动切换示例附演示源码

    原生javascript图片自动或手动切换示例附演示源码

    图片自动或手动切换,想必会在很多地方有见过吧,本文将为大家介绍的是使用原生javascript实现的焦点图切换,感兴趣的朋友可以参考下
    2013-09-09
  • JavaScript this的原理以及指向详解

    JavaScript this的原理以及指向详解

    面向对象语言中 this 表示当前对象的一个引用。但在 JavaScript 中 this 不是固定不变的,它会随着执行环境的改变而改变,在方法中,this 表示该方法所属的对象,如果单独使用,this 表示全局对象
    2021-10-10
  • 微信小程序自定义导航的方法

    微信小程序自定义导航的方法

    这篇文章主要为大家详细介绍了微信小程序自定义导航的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-08-08
  • js随机密码产生函数

    js随机密码产生函数

    在网上找了好多随机产生的密码的代码,没一个好用的,所以就随便写了一个
    2010-08-08
  • 详解JS去重及字符串奇数位小写转大写

    详解JS去重及字符串奇数位小写转大写

    本篇文章主要介绍了详解JS去重及字符串奇数位小写转大写 ,非常具有实用价值,需要的朋友可以参考下。
    2016-12-12

最新评论