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

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


泛舟湖上清波郎朗
浏览 2031回答 5
5回答

墨色风雨

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.1response.setHeader("Pragma", "no-cache"); //HTTP1.0response.setDateHeader("Expires", 0); //prevents catching at proxy serverSystem.out.println(request.getParameter("id"));//check the database 可以先去数据库取response.getWriter().write("<msg>valid</msg>");//写这个内容,随便指定%>

喵喵时光机

js 中的回调函数&nbsp;和其他语言中的回调函数一样啊。就是有一个 方法,这个方法的参数有点小脾气,其中一个或多个参数要求的类型是方法,这个方法就 是回调函数。当这个方法执行完成,或者中间步骤会使用你传入的这个方法……function a(x,c){c(x);}a("hello!",function( y ){alert(y);})例子如上,当写a函数的时候,还不知道 c 是干什么的 ,只知道要对x做某件事情,当然x是什么也不知道当调用 函数a 时,知道了 被操作的值 x 为 “hello!”,而操作方法是 alert,如此而已

万千封印

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叫做回调函数。如果没有名称(函数表达式),就叫做匿名回调函数。

萧十郎

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

有只小跳蛙

回调函数的意思就是在你执行过一个事件或者动作之后,你想它接着能够继续做的事件。例如当你用ajax请求一个数据之后,当数据请求回来了,你希望可以进行一个动作去告诉你数据已经请求好了,那么此时就可以使用一个回调函数来执行你所期望的事件。
打开App,查看更多内容
随时随地看视频慕课网APP