首頁 web前端 js教程 ajax回呼函數參數傳遞正確方法

ajax回呼函數參數傳遞正確方法

Jul 02, 2018 pm 04:44 PM
回呼函數

這篇文章主要介紹了關於ajax回呼函數參數傳遞正確方法,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下

ajax回呼函數參數傳遞正確方法,很多朋友習慣的寫錯了,這裡簡單的小結下。

屬性方法是可以帶參數: 

function ClassX(name) { 
this.name = name; 
ClassX.prototype.show = function (param) { 
alert(this.name + " " + param); 
}; 
} 
var o = new ClassX("name"); 
o.show("param");//name param
登入後複製

但是,上面是雖然是直接在函數簽章中定義了參考,如果不是自己呼叫o.show('param')時,而是透過其他函數回呼傳入時,就不一定好使了,因為別人在呼叫此方法時不一定會給你傳入此參,例如在使用ajax時 

request.onreadystatechange=function(param ){...}

request.onreadystatechange=callBack;function callBack(param){...} 

時就不好使了,因為此時ajax根本就沒有給你傳遞param參數,正確做法形如: 

//request.onreadystatechange = orgEval;//错误作法 

//request.onreadystatechange = function (request, pOrgName) {//错误作法 
// orgEval(request, pOrgName); 
//}; 

//... 
request.onreadystatechange = function () {//正确作法 
orgEval(request, pOrgName);//在匿名函数内调用回调实现,并直接传入参数,这里用到了JavaScript的闭包性质 
}; 
//... 

function orgEval(req, orgName){ 
//... 
}
登入後複製

這樣透過在匿名函數內呼叫回呼實現函數,並且直接傳入參數即可。

ajax傳遞參數給onreadystatechange的回呼函數

這幾天開始學習ajax,其中自己做試驗頁面時有了傳參數給XMLHttpRequest.onreadystatechange的回呼函數這個需求。如是baidu了下,發現說到這個的人不少啊。搜來的辦法大概是這樣:

xmlHttp.onreadystatechange=function(){callback(a,b);};
登入後複製

其中就傳遞了a和b兩個參數。

後來我又自己發現了個方法,方法知道的人肯定很多,不過我在baidu上沒搜到,這裡就寫出來,推廣下咯。

xmlHttp.a=a;
xmlHttp.b=b;
xmlHttp.onreadystatechange=callback;
.
.
function callback()
{
    if(this.readyState==4)
    {
        a=this.a;
        b=this.b;
    .
    }
}
登入後複製

也就是為xmlHttp物件增加兩個屬性,在回呼函數中直接用this呼叫那兩個屬性。

另外說點自己的小經驗,xmlHttp最好要寫成全域變量,我一開始發現總有些請求沒達到目的。後來才發現是把xmlHttp寫在了一個函數裡面,當那個函數運行了,xmlHttp生命週期也結束了。這樣有些請求在生命週期結束前就實現了,而有些請求就沒了。

以上就是本文的全部內容,希望對大家的學習有所幫助,更多相關內容請關注PHP中文網!

相關推薦:

關於Ajax的get和post請求的介紹

關於ajax遍歷xml文件的方法

#

以上是ajax回呼函數參數傳遞正確方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

java回呼函數怎麼寫 java回呼函數怎麼寫 Jan 09, 2024 pm 02:24 PM

java回調函數的寫法有:1、接口回調,定義一個接口,其中包含一個回調方法,在需要觸發回調的地方,使用該接口作為參數,並在合適的時機調用回調方法;2、匿名內部類回調,可以使用匿名內部類別來實現回調函數,避免創建額外的實作類別;3、Lambda表達式回調,在Java 8以上版本中,可以使用Lambda表達式來簡化回調函數的寫法等。

Java中回呼函數的基本語法與應用 Java中回呼函數的基本語法與應用 Jan 30, 2024 am 08:12 AM

Java回呼函數的基本寫法和使用方法引言:在Java程式設計中,回呼函數是一種常見的程式模式,透過回呼函數,可以將某個方法作為參數傳遞給另一個方法,從而實現方法的間接呼叫。回調函數的使用,在事件驅動、非同步程式設計和介面實作等場景中非常常見。本文將介紹Java回呼函數的基本寫法和使用方法,並提供具體的程式碼範例。一、回呼函數的定義回呼函數是一種特殊的函數,它可以作為參數

Vue組件通訊:使用回調函數進行組件通信 Vue組件通訊:使用回調函數進行組件通信 Jul 09, 2023 pm 07:42 PM

Vue組件通信:使用回調函數進行組件通信在Vue應用程式中,有時我們需要讓不同的組件之間進行通信,以便它們可以共享資訊和相互協作。 Vue提供了多種方式來實現元件之間的通信,其中一種常用的方式是使用回調函數。回調函數是一種將一個函數作為參數傳遞給另一個函數並在特定事件發生時被呼叫的機制。在Vue中,我們可以利用回調函數來實現元件之間的通信,使得一個元件可以在

分析常見的Python回呼函數應用場景 分析常見的Python回呼函數應用場景 Feb 02, 2024 pm 09:34 PM

Python中常見的回呼函數應用場景分析,需要具體程式碼範例回呼函數是指在程式設計中,將一個函數作為參數傳遞給另一個函數,並在某個特定的事件發生時執行這個參數函數。回呼函數廣泛應用於非同步程式設計、事件處理、GUI程式設計等領域。本文將分析Python中常見的回呼函數應用場景,並給出相關的具體程式碼範例。非同步程式設計在非同步程式設計中,回呼函數常用於處理非同步任務的結果。當需要執行一個耗

如何在 Golang 中使用資料庫回呼函數? 如何在 Golang 中使用資料庫回呼函數? Jun 03, 2024 pm 02:20 PM

在Golang中使用資料庫回呼函數可以實現:在指定資料庫操作完成後執行自訂程式碼。透過單獨的函數新增自訂行為,無需編寫額外程式碼。回調函數可用於插入、更新、刪除和查詢操作。必須使用sql.Exec、sql.QueryRow或sql.Query函數才能使用回呼函數。

事件驅動程式設計中Java回呼函數的應用領域 事件驅動程式設計中Java回呼函數的應用領域 Feb 01, 2024 am 09:07 AM

Java回呼函數在事件驅動程式設計中的應用回呼函數簡介回呼函數(callbackfunction)是一種在某個事件或操作發生後被呼叫的函數。它通常用於事件驅動程式設計中,其中程式在等待事件發生時會阻塞。當事件發生時,回呼函數就會被調用,程式就可以繼續執行。在Java中,回呼函數可以透過介面或匿名內部類別來實現。介面是一種定義函數簽章的機制,它允許一個類別實作另一個類別的

深入解析JavaScript中的回呼函數(同步與非同步) 深入解析JavaScript中的回呼函數(同步與非同步) Aug 04, 2022 am 10:05 AM

回調函數是每個前端程式設計師都應該知道的概念之一。回調可用於陣列、計時器函數、promise、事件處理。本文將會解釋回呼函數的概念,同時幫你區分兩種回呼:同步和非同步。

深入研究Java回呼函數的實例應用技巧 深入研究Java回呼函數的實例應用技巧 Feb 01, 2024 am 09:29 AM

Java回呼函數的妙用技巧回呼函數是一種程式模式,允許一個函數將控制權交回給另一個函數,並在另一個函數完成任務後繼續執行。這在需要非同步處理任務或處理事件時非常有用。 Java中可以使用匿名內部類別、lambda表達式或函數式介面來實作回呼函數。匿名內部類別匿名內部類別是一種無名的內部類,它沒有名稱,只能在創建它的類別中使用。匿名內部類別可以實作介面或擴充類,並且可以重寫

See all articles