回调函数(Callback Functions)
因为函数和其他数据一样可以被赋值,删除,拷贝等,所以也可以把函数作为参数传入到另一个函数中。
实例一
Js代码 收藏代码
再来看看匿名函数的用法。
实例二
我们用匿名函数替代了 one,two两个函数。
通过上面两个实例,回调函数的定义为:传递一个函数A到另一个函数B中,并且这个函数B执行函数A。我们就说函数A叫做回调函数。如果没有名称,就叫做匿名回调函数
回调函数的作用
主要有三个
1.当函数作为参数传递的时候,不用为这个函数定义一个名称,这样的好处是减少了全局变量。
2.节省了大量的代码。
3.提高了程序的性能。
-------------------
回调什么时候执行
回调函数,一般在同步情境下是最后执行的,而在异步情境下有可能不执行,因为事件没有被触发或者条件不满足。
回调函数的使用场合
资源加载:动态加载js文件后执行回调,加载iframe后执行回调,ajax操作回调,图片加载完成执行回调,AJAX等等。
DOM事件及Node.js事件基于回调机制(Node.js回调可能会出现多层回调嵌套的问题)。
setTimeout的延迟时间为0,这个hack经常被用到,settimeout调用的函数其实就是一个callback的体现
链式调用:链式调用的时候,在赋值器(setter)方法中(或者本身没有返回值的方法中)很容易实现链式调用,而取值器(getter)相对来说不好实现链式调用,因为你需要取值器返回你需要的数据而不是this指针,如果要实现链式方法,可以用回调函数来实现
setTimeout、setInterval的函数调用得到其返回值。由于两个函数都是异步的,即:他们的调用时序和程序的主流程是相对独立的,所以没有办法在主体里面等待它们的返回值,它们被打开的时候程序也不会停下来等待,否则也就失去了setTimeout及setInterval的意义了,所以用return已经没有意义,只能使用callback。callback的意义在于将timer执行的结果通知给代理函数进行及时处理。
回调函数的传递
上面说了,要将函数引用或者函数表达式作为参数传递。
因为函数和其他数据一样可以被赋值,删除,拷贝等,所以也可以把函数作为参数传入到另一个函数中。
实例一
Js代码 收藏代码
function invoke_and_add(a,b){ return a()+b(); } function one(){ return 1; } function two(){ return 2; } invoke_and_add(one ,two); 结果为3;
再来看看匿名函数的用法。
实例二
invoke_and_add(function(){return 1;},function(){return 2;})
我们用匿名函数替代了 one,two两个函数。
通过上面两个实例,回调函数的定义为:传递一个函数A到另一个函数B中,并且这个函数B执行函数A。我们就说函数A叫做回调函数。如果没有名称,就叫做匿名回调函数
回调函数的作用
主要有三个
1.当函数作为参数传递的时候,不用为这个函数定义一个名称,这样的好处是减少了全局变量。
2.节省了大量的代码。
3.提高了程序的性能。
-------------------
回调什么时候执行
回调函数,一般在同步情境下是最后执行的,而在异步情境下有可能不执行,因为事件没有被触发或者条件不满足。
回调函数的使用场合
资源加载:动态加载js文件后执行回调,加载iframe后执行回调,ajax操作回调,图片加载完成执行回调,AJAX等等。
DOM事件及Node.js事件基于回调机制(Node.js回调可能会出现多层回调嵌套的问题)。
setTimeout的延迟时间为0,这个hack经常被用到,settimeout调用的函数其实就是一个callback的体现
链式调用:链式调用的时候,在赋值器(setter)方法中(或者本身没有返回值的方法中)很容易实现链式调用,而取值器(getter)相对来说不好实现链式调用,因为你需要取值器返回你需要的数据而不是this指针,如果要实现链式方法,可以用回调函数来实现
setTimeout、setInterval的函数调用得到其返回值。由于两个函数都是异步的,即:他们的调用时序和程序的主流程是相对独立的,所以没有办法在主体里面等待它们的返回值,它们被打开的时候程序也不会停下来等待,否则也就失去了setTimeout及setInterval的意义了,所以用return已经没有意义,只能使用callback。callback的意义在于将timer执行的结果通知给代理函数进行及时处理。
回调函数的传递
上面说了,要将函数引用或者函数表达式作为参数传递。
$.get('myhtmlpage.html', myCallBack);//这是对的 $.get('myhtmlpage.html', myCallBack('foo', 'bar'));//这是错的,那么要带参数呢? $.get('myhtmlpage.html', function(){//带参数的使用函数表达式 myCallBack('foo', 'bar'); });
发表评论
-
jquery方法扩展使用
2014-12-02 19:28 793//非负浮点数 保留一位小数---添加到jquery.vali ... -
jquery操作select值,jqery设置select值
2014-10-15 21:26 1159每一次操作select的时候,总是要出来翻一下资料,不如自己总 ... -
jquery ajax相关操作
2014-09-28 13:50 848--ajax 请求当有记录时给予提交,rows为0时提示提示框 ... -
jquery ajax和data的使用
2014-09-04 14:58 1146function print(selId){ $. ... -
Js中parseFloat()精度问题
2014-07-08 16:11 2370<!DOCTYPE HTML PUBLIC " ... -
jquery attr()属性
2014-07-04 19:07 3075在JS中设置节点的属性与属性值用到setAttribute() ... -
CSS中line-height与height的区别
2014-07-03 19:32 1524CSS中line-height与height的区别? lin ... -
freemarker为空判断详细
2014-05-27 22:08 53076freemarker里面判断为空只有??,后来查找其他文档才发 ... -
FreeMarker中if标签内的判断条件
2014-05-13 18:41 17696FreeMarker中if标签内的判断条件 FreeMark ... -
FreeMarker 对null值的处理
2014-05-05 17:40 2681以下引用官方描述: The FreeMarker temp ... -
freemarker ?datetime ? time ?date
2014-04-30 16:28 2743?date,?time和?datetime,因为你指定的格式告 ... -
div设置显示与隐藏、边框等
2014-04-30 16:24 25261.div 设置隐藏后页面占 ... -
div设置显示与隐藏、边框等
2014-04-30 16:22 18661.div 设置隐藏后页面占 ... -
用jquery计算前两个文本框的结果等于第三个文本框
2014-04-23 21:19 1430//本记录是结束里程数-起始里程数=运行里程数 //其它 ... -
jQuery.validate使用手册-详解
2014-04-09 14:22 1223jQuery.validate是一款非常不错的表单验证工具,简 ... -
jQuery对表单元素的取值和赋值操作
2014-04-08 22:13 1450jQuery对表单元素的取值 ... -
JQuery获取input type="text"中的值的各种方式
2014-04-08 22:09 2119<!DOCTYPE html PUBLIC " ... -
freemarker list (长度,遍历,下标,嵌套,排序)
2014-03-13 09:56 137501. freemarker获取list的size : ... -
Extjs Config和Mixins
2014-03-05 13:23 1095Extjs 4中,为类型系统引入了Config概念,Con ... -
extjs4.0 Ext.Array 函数方法详解
2014-03-04 10:34 1189Ext.onReady(function(){ ...
相关推荐
JS 回调函数参数传递方法总结 JS 回调函数是一种非常常用的编程技术,然而,在实际应用中,我们经常会因为向回调函数中传参而感到头疼。今天,我们将总结一下向回调函数中传参的方法,以便在以后的应用中不用再到处...
js回调函数js回调函数js回调函数js回调函数js回调函数js回调函数js回调函数js回调函数js回调函数js回调函数js回调函数js回调函数js回调函数js回调函数js回调函数js回调函数js回调函数js回调函数js回调函数js回调函数...
JavaScript回调函数是异步编程的一种常见模式,它在JavaScript中扮演着至关重要的角色,尤其是在处理I/O操作、网络请求和时间间隔等耗时任务时。本文将深入探讨JavaScript回调函数的概念、工作原理以及如何在实际...
总的来说,JavaScript回调函数是异步编程的核心工具,它们帮助我们在单线程环境中处理复杂的异步任务,但同时也需要谨慎处理,避免回调地狱的问题。通过学习和掌握回调函数的使用,开发者能够更好地构建高效、响应式...
JavaScript回调函数是JavaScript异步编程的核心机制之一,它在处理事件、网络请求、定时任务等方面发挥着重要作用。本文将深入探讨JavaScript回调函数的概念、特点、使用场景以及面试中常见的问题。 **1. 回调函数...
以下是一些关于JavaScript回调函数的关键点: 1. **回调函数定义**:回调函数是一个作为参数传递给其他函数的函数,这个参数通常是一个函数引用。当外部函数执行完毕或满足特定条件时,它会调用这个传递进来的函数...
### JavaScript回调函数知识点详解 #### 一、回调函数的基本概念 **回调函数**是JavaScript中一种重要的编程模式,尤其在处理异步操作时显得尤为重要。简单来说,回调函数就是一个通过参数传递给另一个函数的函数...
JavaScript回调函数是编程中一种常见的技术,特别是在异步编程领域。回调函数允许我们将一个函数作为参数传递给另一个函数,以便在特定条件满足时执行。这种技术在JavaScript中尤为重要,因为JavaScript是单线程的,...
JavaScript回调函数是编程中一种常见的处理异步操作的方式,尤其在Web开发中,它们是JavaScript事件驱动模型的核心。本文将深入探讨回调函数的概念、用法、优缺点,并结合实际示例来帮助理解。 ### 一、回调函数...
### 理解和使用 JavaScript 中的回调函数 在 JavaScript 中,回调函数是一种常见的功能编程技术,被广泛应用于各种场景之中。本文旨在深入探讨回调函数的概念、工作原理以及如何在实际开发中应用它们。 #### 一、...
例如,一个简单的JavaScript回调函数用法可能是: ```javascript function doSomethingAsync(callback) { setTimeout(() => { // 异步操作 callback('操作已完成'); }, 1000); } function logResult(result) {...
JavaScript中的回调函数是异步编程的核心机制之一,它在处理事件驱动和非阻塞I/O操作时发挥着关键作用。回调函数的主要目的是解决程序执行顺序的问题,特别是在处理那些需要等待某些操作完成才能继续执行的场景。 ...
3. **OCX事件触发**:当OCX控件的某个事件发生时,其内部的事件函数会被执行,然后这个函数会查找并调用预先注册的JavaScript回调函数。 4. **数据传递**:事件函数可以通过参数或者某种约定的方式(如通过全局变量...
javascript 回调函数示例
JavaScript中的回调函数是一种重要的编程模式,它主要用于处理异步操作,确保在特定任务完成之后执行特定的代码。回调函数的基本概念是将一个函数作为参数传递给另一个函数,然后在内部函数执行完毕时调用这个传递的...
改动主要集中在JavaScript文件上,添加了名为"DaDaCallBack"的回调函数。这个回调函数的目的是在用户在LCalendar中选择完日期或时间并点击确定按钮后执行。通过这样的设计,开发者可以自定义在用户完成日期选择后的...
JavaScript中的回调函数是一种重要的编程模式,它允许我们将一个函数作为参数传递给另一个函数,以便在特定条件下或事件发生时执行。这种技术广泛应用于处理异步操作,如Ajax请求、定时器(setTimeout和setInterval...
本文实例讲述了JS回调函数原理与用法。分享给大家供大家参考,具体如下: JS回调函数 何为回调函数,官方解释:当程序跑起来时,一般情况下,应用程序(application program)会时常通过API调用库里所预先备好的函数...
### 回调函数被连续执行两次或多次的原因 在编程领域,回调函数是一种常见的编程模式,它允许将函数作为参数传递给另一个函数,并在适当的时机由后者调用。这种模式非常有用,尤其是在处理异步操作时。然而,在某些...