关闭

javascript回调函数的理解和使用方法(callback)

时间: 2018-03-23阅读: 4747标签: 函数

js回调函数的作用?

js开发中,程序代码是从上而下一条线执行的,但有时候我们需要等待一个操作结束后,再进行下一步操作,这个时候就需要用到回调函数。  举个例子:

比如你到商场买东西,刚好没有你需要的货品,这时候你留下电话,店里有货了救让店员通知你,然后你接到电话到店里取到了货。这里的电话号码就可看做回调函数,你把电话留给店员就叫登记回调函数,店里后来有货了叫做触发了回调关联的事件,店员给你打电话叫做调用回调函数,你到店里去取货叫做响应回调事件。(引用知乎常溪玲的回答,链接:https://www.zhihu.com/question/19801131/answer/13005983)


回调函数的解释 : 

在js中,函数也是对象,确切地说:函数是用Function()构造函数创建的Function对象。它就可以存储在变量中,通过参数传递给另一个函数,在函数的内部创建,而函数中返回结果值。因为函数是内置对象。我们可以作为参数传递给另一个函数,到函数中执行,甚至执行后将他返回。 

 回调函数的英文解释为:A callback is a function that is passed as an argument to another function and is executed after its parent function has completed.

翻译过来就是:回调函数是一个作为变量传递给另外一个函数的函数,它在主体函数执行完之后执行。


回调函数的使用 : 

函数b以一个参数的形式传入函数a并执行,顺序是先执行a ,然后执行参数b,b就是所谓的回调函数。我们先来看下面的例子: 

function  a(callback){
      console.log('a');
      callback.call(this);//或者是 callback(),  callback.apply(this),都可以的
}
function  b(){
     console.log('b');
}
//调用
a(b);//打印:a b

在实际的应用场景:比如一个函数的实现过程比较长,你是选择等待函数执行完再继续,还是使用回调函数进行处理呢?例如:ajax异步请求,如果使用回调函数,代码就可以继续进行其他任务,而无需等待!  



站长推荐

1.云服务推荐: 国内主流云服务商,各类云产品的最新活动,优惠券领取。地址:阿里云腾讯云华为云

链接: http://www.fly63.com/article/detial/540

工作中常用的JavaScript函数片段

返回已 size 为长度的数组分割的原数组;检查数组中某元素出现的次数;扁平化数组默认 depth 全部展开;对比两个数组并且返回其中不同的元素

JS 自执行函数

由于自己js基础知识薄弱,很多js的知识还没有掌握,所以接下来会经常写一些关于js基础知识的博客,也算给自己提个醒吧。js自执行函数,听到这个名字,首先会联想到函数

js中reduce()方法

reduce() 方法接收一个函数作为累加器,reduce 为数组中的每一个元素依次执行回调函数,不包括数组中被删除或从未被赋值的元素,接受四个参数:初始值(上一次回调的返回值),当前元素值,当前索引,原数组。

JavaScript中的高阶函数

在 JavaScript 的学习过程中,我们可能或多或少地接触过高阶函数。那么,我们自己对此是否有一个明确的定义,或者说很熟练的掌握这些用法呢

Generator函数

Generator 函数有多种理解角度。语法上,首先可以把它理解成,Generator 函数是一个状态机,封装了多个内部状态。执行 Generator 函数会返回一个遍历器对象,也就是说,Generator 函数除了状态机,还是一个遍历器对象生成函数。返回的遍历器对象,可以依次遍历 Generator 函数内部的每一个状态。

eval到底哪里不好?

为什么要少用eval?eval是 js 中一个强大的方法。都说eval == evil等于true,这篇文章将研讨eval的几个缺点和使用注意事项。

Js函数拓展

箭头函数的作用域永远是定义时的作用域,因此不受严格模式,call,bind,apply方法的影响。 想改变箭头函数作用域:将箭头函数定义在一个普通函数中。想改变这个普通函数作用域,我们可以改变箭头函数的作用域

JS中的setTimeout()函数

setTimeout() 方法用于在指定的毫秒数后调用函数或执行表达式。返回一个 ID(数字),可以将这个ID传递给 clearTimeout() 来取消执行。第三个及之后的参数是setTimeout()函数的可选参数,是作为参数传给 setTimeout() 方法里面的匿名函数或者调用的函数

js声明函数

JS声明函数的三种方式:函数表达式: function操作符创建函数, 表达式可以存储在变量或者对象属性里. 往往被称为匿名函数, console.log(h.name); 可以看到打印为空;函数声明: 具名函数, 且函数能在其所在作用域的任意位置被调用

如何写一个作用域安全的构造函数

构造函数本质上就是一个使用new操作符调用的函数,当多个人一同构建一个项目时,作用域构安全函数就非常必要,对全局对象意外的更改可能就会导致一些常常难以追踪的错误,这和平常设置空变量和空函数一样避免因为其他人可能发生的错误而阻塞程序执行。

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!