ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

JS回调函数

2021-04-23 10:02:01  阅读:137  来源: 互联网

标签:function obj 函数 value JS say 回调


JS回调函数

什么是回调函数:回调函数就是一个被作为参数传递的函数,回调函数的使用可以大大提升编程的效率,这使得它在现代编程中被非常多地使用。
在这里插入图片描述

二.js中函数可以作为参数传递

<script language="javascript">
02	    function SortNumber( obj, func )                	// 定义通用排序函数
03	    {
04	        // 参数验证,如果第一个参数不是数组或第二个参数不是函数则抛出异常
05	        if( !(obj instanceof Array) || !(func instanceof Function)) 
06	        {
07	            var e = new Error();                    	// 生成错误信息
08	            e.number = 100000;                     	// 定义错误号
09	            e.message = "参数无效";                 	// 错误描述
10	            throw e;                                		// 抛出异常 
11	        }
12	        for( n in obj )                             		// 开始排序
13	        {
14	            for( m in obj )
15	            {
16	                if( func( obj[n], obj[m] ) )        	// 使用回调函数排序,规则由用户设定
17	                {
18	                    var tmp = obj[n];               		// 创建临时变量
19	                    obj[n] = obj[m];		// 交换数据
20	                    obj[m] = tmp;
21	                }
22	            }
23	        }
24	        return obj;                                 		// 返回排序后的数组
25	    }

我们先来看看回调的英文定义:A callback is a function that is passed as an argument to another function and is executed after its parent function has completed。

字面上的理解,回调函数就是传递一个参数化的函数,就是将这个函数作为一个参数传到另一个主函数里面,当那一个主函数执行完之后,再执行传进去的作为参数的函数。走这个过程的参数化的函数 就叫做回调函数。换个说法也就是被作为参数传递到另一个函数(主函数)的那个函数就叫做 回调函数。

 举一个别人举过的例子:约会结束后你送你女朋友回家,离别时,你肯定会说:“到家了给我发条信息,我很担心你。” 对不,然后你女朋友回家以后还真给你发了条信息。小伙子,你有戏了。其实这就是一个回调的过程。你留了个参数函数(要求女朋友给你发条信息)给你女朋友,然后你女朋友回家,回家的动作是主函数。她必须先回到家以后,主函数执行完了,再执行传进去的函数,然后你就收到一条信息了。

 回调函数应用场景多用在使用 js 写组件时和耗时操作上面,尤其是组件的事件很多都需要回调函数的支持。

再看下面的两段代码:

function say (value) {
    alert(value);
}
function execute (someFunction, value) {
    someFunction(value);
}
execute(say, 'hi js.');

function execute (someFunction, value) {
    someFunction(value);
}
execute(function(value){alert(value);}, 'hi js.');

上面第一段代码是将say方法作为参数传递给execute方法
第二段代码则是直接将匿名函数作为参数传递给execute方法

实际上:

function say (value) {
    alert(value);
}
// 注意看下面,直接写say方法的方法名与下面的匿名函数可以认为是一个东西
// 这样再看上面两段代码是不是对函数可以作为参数传递就更加清晰了
say;

function (value) {
    alert(value);
}
这里的say或者匿名函数就被称为回调函数。

回调函数易混淆点——传参:

在这里插入图片描述
二,回调函数的参数在调用回调函数内部创建。
在这里插入图片描述
回调函数应用场景多用在使用 js 写组件时,尤其是组件的事件很多都需要回调函数的支持。

标签:function,obj,函数,value,JS,say,回调
来源: https://blog.csdn.net/ikEason_/article/details/116043042

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有