亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

什么是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條經驗 獲得超13個贊

一般來說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 關注
  • 2079 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號