您的当前位置:首页正文

Javascript中的Callback方法浅析_javascript技巧

2020-11-27 来源:东饰资讯网

什么是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'。

东饰资讯网还为您提供以下相关内容希望对您有帮助:

JS之回调函数(callback)

JS中的回调函数,即一个函数作为参数传递给另一个函数,当"otherFunction"执行完毕后,会调用这个回调函数。它们可以是匿名的,也可以是具名的,关键在于它们并不主动被调用,但最终会在特定情境下被执行。回调函数在JavaScript中的应用广泛,例如DOM事件处理、定时器触发、AJAX请求响应以及对象的生命周期管理...

callback是什么意思?

Callback是指函数作为参数传递到另一个函数中,并在执行这个函数后被调用的过程。在JavaScript中,Callback通常用于异步编程中,例如在某个事件完成后执行一些处理逻辑。这种操作方式可以避免阻塞程序的运行,提高代码效率和可维护性。使用Callback的优点在于它可以让程序更加灵活和可扩展。通过将函数作为参数传...

JavaScript常用数组元素搜索或过滤的四种方法详解

查找满足特定条件的第一个元素,使用 find 方法。let element = array.find(callback);element - 当前被遍历的元素(必填),index - 当前遍历的元素的索引/位置(可选),array - 当前数组(可选)但是请注意,如果数组中没有项目符合条件,则返回 undefined。例如,如果我们要找到数组中第一个大于10...

Javascript数组的?forEach?方法详细介绍

其中,callback是一个为数组中每个元素执行的函数,该函数可以接收一到三个参数:currentValue:数组中正在处理的当前元素。index(可选):数组中正在处理的当前元素的索引。array(可选):forEach()方法正在操作的数组。thisArg(可选):当执行回调函数callback时,用作this的值。当在forEach中传入一...

javascript中正确处理错误的方法有几种

1.使用window.onerror指定错误处理函数。当有错误的时候,onerror会被callback。 当某个JavaScript block中有多个script错误时,第一个错误触发后(回调callback),当前Javascript block后面的script会被自动Drop忽略掉,不被执行。如:复制代码 代码如下: Test window.onerror = function(message, url...

用JavaScript实现get,post,getjson这几个方法,写法都是一样的吗_百度...

一,$.get(url,[data],[callback])说明:url为请求地址,data为请求数据的列表,callback为请求成功后的回调函数,该函数接受两个参数,第一个为服务器返回的数据,第二个参数为服务器的状态,是可选参数。二,$.post(url,[data],[callback],[type])说明:这个函数跟$.get()参数差不多,多了...

js实现跨域的几种方法汇总(图片ping、JSONP和CORS)_javascript技巧

简单代码如下:function call(data){ alert(data.city);}这里,我们把脚本的src设置为http://freegeoip.net/json/?callback=call,这是一个获取用户ip地址的api(有兴趣的可以点击这里查看),然后将callback作为一个参数拼接在URL后,返回的json数据就会作为callback的参数,在这里callback我们...

javascript的回调函数里如何传递参数

.ajax({ type:'POST',url:u,data:param,success:callback });} function showAlert(data,test1,test2){ alert(data+" "+test1+" "+test2);} window.onload = doAjax("server.php","id=12&type=1",function(data){showAlert(data,3,5)});执行doAjax的时候,回调函数的调用改一下就...

请问vue中的callback到底该怎么用?

回调函数的主要优点在于封装和复用。在Vue的上下文中,它可以帮助组件之间的通讯,实现数据的异步处理。以ES6写法为例,回调函数的使用使得函数validatePassword不需要预知将被调用的具体函数名。传入的函数会在内部作为callback使用,从而使得validatePassword成为可复用的函数。比较之下,如果使用没有回调的写法,...

sentry-javascript解析(三)js异常错误如何捕获

当JS代码出现错误时,window.onerror和addEventListener('error', callback)会捕获异常,但它们之间有何区别?此外,我们还将关注unhandledrejection事件,即当Promise被拒绝且无相应处理器时触发。现在,我们深入解析sentry如何进行异常捕获。通过分析onerror的高阶函数封装,我们可发现其主要通过特定方法整合错误...

显示全文