Javascript:我如何在JavaScript函数中传递参数而不在下面的代码中使用括号?
问题描述:
我想要传递在process()函数中调用的handleServerResponse()函数中的参数,如给定的代码所示(这没有paiousheses),但是当我尝试这样做代码不起作用。我如何传递参数呢?Javascript:我如何在JavaScript函数中传递参数而不在下面的代码中使用括号?
function process(id){
if(xmlObject.readyState==0 || xmlObject.readyState==4){
xmlObject.open("GET","dataProc.php?id=" + id, true);
xmlObject.onreadystatechange = handleServerResponse;
xmlObject.send(null);
}else{
setTimeout("process()",1000);
}
}
function handleServerResponse(){
if(xmlObject.readyState==4){
if(xmlObject.status==200){
xmlResponse = xmlObject.responseXML;
xmlDocumentElement = xmlResponse.documentElement;
message = xmlDocumentElement.firstChild.data;
//document.getElementById(str).className="btn btn-success disabled";
document.getElementById("result").style.display='block';
document.getElementById("result").innerHTML = message;
}else{
alert("Something went wrong");
}
}
}
上面给出的代码工作正常,但我想这样做,这样添加一些更多的功能: -
function process(id,id_val){
if(xmlObject.readyState==0 || xmlObject.readyState==4){
xmlObject.open("GET","dataProc.php?id=" + id, true);
xmlObject.onreadystatechange = handleServerResponse(idval);
//pass id_val to handleServerResponse();
xmlObject.send(null);
}else{
setTimeout("process()",1000);
}
}
function handleServerResponse(new_id){
if(xmlObject.readyState==4){
if(xmlObject.status==200){
xmlResponse = xmlObject.responseXML;
xmlDocumentElement = xmlResponse.documentElement;
message = xmlDocumentElement.firstChild.data;
str="greendiv";
str.concat(new_id);
document.getElementById(str).className="btn btn-success disabled";
document.getElementById("result").style.display='block';
document.getElementById("result").innerHTML = message;
}else{
alert("Something went wrong");
}
}
}
答
使用可选参数与setTimeout()
:
var timeoutID = window.setTimeout(func, [delay, param1, param2, ...]);
param1
,param2
,等是其通过由func
指定的功能传递的附加参数。
使用函数表达式。或者,只需在'process'范围内移动'handleServerResponse'函数,并直接访问参数。 – Bergi