为了账号安全,请及时绑定邮箱和手机立即绑定

什么是JavaScript中的回调函数,作用是什么?

什么是JavaScript中的回调函数,作用是什么?

泛舟湖上清波郎朗 2019-01-27 06:02:32
什么是JavaScript中的回调函数,作用是什么?
查看完整描述

5 回答

?
墨色风雨

TA贡献1853条经验 获得超6个赞

var req;
function validate() {
var idField = document.getElementById("userid");
var url = "Validate.jsp?id=" + encodeURI(idField.value);
init();
req.open("GET", url, true);
req.onreadystatechange = callback;
//callback就是回调函数,当触发req.onreadystatechange时,调用callback获取url传回的东西
req.send(null);
}

function init() {
if(window.XMLHttpRequest) {
req = new XMLHttpRequest();
} else if (window.ActiveXObject) {
req = new ActiveXObject("Microsoft.XMLHTTP");
}
}

function callback() {
if(req.readyState == 4) { //反馈回到客户端
if(req.status == 200) { //反馈完全正常
//alert(req.responseText);
var msg = req.responseXML.getElementsByTagName("msg")[0];
//alert(msg);
setMsg(msg.childNodes[0].nodeValue);
}
}
}

function setMsg(msg) {// 页面中的span <span id="usermsg"></span>
//alert(msg);
mdiv = document.getElementById("usermsg");
if(msg == "invalid") {
mdiv.innerHTML = "<font color='red'>username exists</font>";
} else {
mdiv.innerHTML = "<font color='green'>congratulations! you can use this username!</font>";
}
}

Validate.jsp

<%
response.setContentType("text/xml");
response.setHeader("Cache-Control", "no-store"); //HTTP1.1
response.setHeader("Pragma", "no-cache"); //HTTP1.0
response.setDateHeader("Expires", 0); //prevents catching at proxy server
System.out.println(request.getParameter("id"));
//check the database 可以先去数据库取
response.getWriter().write("<msg>valid</msg>");//写这个内容,随便指定
%>



查看完整回答
反对 回复 2019-03-14
?
喵喵时光机

TA贡献1846条经验 获得超7个赞

js 中的回调函数 和其他语言中的回调函数一样啊。

就是有一个 方法,这个方法的参数有点小脾气,其中一个或多个参数要求的类型是方法,这个方法就 是回调函数。

当这个方法执行完成,或者中间步骤会使用你传入的这个方法……
function a(x,c){
c(x);
}

a("hello!",function( y ){
alert(y);
})

例子如上,
当写a函数的时候,还不知道 c 是干什么的 ,只知道要对x做某件事情,当然x是什么也不知道

当调用 函数a 时,知道了 被操作的值 x 为 “hello!”,而操作方法是 alert,如此而已



查看完整回答
反对 回复 2019-03-14
?
万千封印

TA贡献1891条经验 获得超3个赞

In computer programming, a callback is a reference to a piece of executable code that is passed as an argument to other code.
计算机编程中,回调函数是作为参数传递给函数的一段可执行代码(函数)的引用。

在JavaScript中,回调函数具体的定义为:函数A作为参数(函数引用)传递到另一个函数B中,并且这个函数B执行函数A。我们就说函数A叫做回调函数。如果没有名称(函数表达式),就叫做匿名回调函数。

查看完整回答
反对 回复 2019-03-14
?
萧十郎

TA贡献1815条经验 获得超12个赞

一般来说Ajax最大的一个回调函数就是onreadystatechange,这个应该成为事件,每次XMLHttpRequest这个Object在URL请求,状态改变的时候就会触发这个事件。那么你用onreadystatechange=一个函数,这样让你的函数在XMLHttpRequest state change 的时候可以及时捕捉到。当然就不用setTimeout来捕捉啦。所以会方便,在你的回调函数里面可以检测Ajax对象的值,包括返回的请求的HTML,当然只有在readyState=4的时候而且status=200的时候才能用。status就是HTML状态,有200,400,500之类的。
总之,回调函数就是一个自定义的函数,在发生特定的事件的时候调用来处理这个事件的函数

查看完整回答
反对 回复 2019-03-14
?
有只小跳蛙

TA贡献1824条经验 获得超8个赞

回调函数的意思就是在你执行过一个事件或者动作之后,你想它接着能够继续做的事件。
例如当你用ajax请求一个数据之后,当数据请求回来了,你希望可以进行一个动作去告诉你数据已经请求好了,那么此时就可以使用一个回调函数来执行你所期望的事件。

查看完整回答
反对 回复 2019-03-14
  • 5 回答
  • 0 关注
  • 2022 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信