Javascript:我如何在JavaScript函数中传递参数而不在下面的代码中使用括号?

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"); 
    } 
} 

}

+0

使用函数表达式。或者,只需在'process'范围内移动'handleServerResponse'函数,并直接访问参数。 – Bergi

使用可选参数与setTimeout()

var timeoutID = window.setTimeout(func, [delay, param1, param2, ...]); 

param1param2,等是其通过由func指定的功能传递的附加参数。