国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > AJAX > 正文

ajax回調(diào)函數(shù)參數(shù)傳遞正確方法

2024-09-01 08:29:17
字體:
供稿:網(wǎng)友
屬性方法是可以帶參數(shù):
代碼如下:
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


但是,上面是雖然是直接在函數(shù)簽名中定義了參考,如果不是自己調(diào)用o.show('param')時(shí),而是通過其他函數(shù)回調(diào)傳入時(shí),就不一定好使了,因?yàn)閯e人在調(diào)用此方法時(shí)不一定給你傳入此參,比如在使用ajax時(shí)

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



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

時(shí)就不好使了,因?yàn)榇藭r(shí)ajax根本就沒有給你傳遞param參數(shù),正確做法形如:
代碼如下:
//request.onreadystatechange = orgEval;//錯(cuò)誤作法

//request.onreadystatechange = function (request, pOrgName) {//錯(cuò)誤作法
// orgEval(request, pOrgName);
//};

//...
request.onreadystatechange = function () {//正確作法
orgEval(request, pOrgName);//在匿名函數(shù)內(nèi)調(diào)用回調(diào)實(shí)現(xiàn),并直接傳入?yún)?shù),這里用到了JavaScript的閉包性質(zhì)
};
//...

function orgEval(req, orgName){
//...
}

這樣通過在匿名函數(shù)內(nèi)調(diào)用回調(diào)實(shí)現(xiàn)函數(shù),并且直接傳入?yún)?shù)即可。

ajax傳遞參數(shù)給onreadystatechange的回調(diào)函數(shù)

這幾天開始學(xué)習(xí)ajax,其中自己做試驗(yàn)頁面時(shí)有了傳參數(shù)給XMLHttpRequest.onreadystatechange的回調(diào)函數(shù)這個(gè)需求。如是baidu了下,發(fā)現(xiàn)說到這個(gè)的人不少啊。搜來的辦法大概是這樣:

xmlHttp.onreadystatechange=function(){callback(a,b);};

其中就傳遞了a和b兩個(gè)參數(shù)。

后來我又自己發(fā)現(xiàn)了個(gè)方法,方法知道的人肯定很多,不過我在baidu上沒搜到,這里就寫出來,推廣下咯。

代碼如下:
xmlHttp.a=a;
xmlHttp.b=b;
xmlHttp.onreadystatechange=callback;
.
.
function callback()
{
    if(this.readyState==4)
    {
        a=this.a;
        b=this.b;
    .
    }
}

也就是給xmlHttp對象增加兩個(gè)屬性,在回調(diào)函數(shù)中直接用this調(diào)用那兩個(gè)屬性。

另外說點(diǎn)自己的小經(jīng)驗(yàn),xmlHttp最好要寫成全局變量,我一開始發(fā)現(xiàn)總有些請求沒達(dá)到目的。后來才發(fā)現(xiàn)是把xmlHttp寫在了一個(gè)函數(shù)里面,當(dāng)那個(gè)函數(shù)運(yùn)行完了,xmlHttp生命周期也結(jié)束了。這樣有些請求在生命周期結(jié)束之前就實(shí)現(xiàn)了,而有些請求就沒了。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 桐城市| 乡宁县| 东港市| 凤庆县| 阿尔山市| 肇源县| 辽源市| 正宁县| 武宁县| 曲靖市| 张家港市| 勐海县| 台南县| 邢台市| 和平区| 望奎县| 铜鼓县| 祁阳县| 吉安市| 刚察县| 隆昌县| 延吉市| 石渠县| 正蓝旗| 宣武区| 大田县| 罗江县| 玉树县| 锦屏县| 汝城县| 通渭县| 隆安县| 黔西| 乌什县| 祁门县| 大荔县| 泰州市| 双柏县| 芒康县| 德钦县| 临猗县|