请教一个JS方面的问题 10

js代码:varsrt=8;xmlhttp.onreadystatechange=function(str){alert(str);if(xmlhttp.readySta... js代码:
var srt=8;
xmlhttp.onreadystatechange=function(str){
alert(str);
if (xmlhttp.readyState==4 && xmlhttp.status==200){
document.getElementById("txtHint").value=xmlhttp.responseText;
}
}
请问str这个参数怎么才能传进行函数里面?也就是怎样对能使alert(str)有结果!谢谢了!
展开
 我来答
dingn1
2017-02-08 · TA获得超过218个赞
知道小有建树答主
回答量:468
采纳率:90%
帮助的人:114万
展开全部

onreadystatechange 对应于ajax request, 所以数据是ajax来产生的,并不是你能传入的。

可以用closure来做

xhttp.onreadystatechange = (function(str) {
    return function() {
        /* Do stuff */
    }
})(xhttp, msg);
追问
还是看不懂,能再说明白一点吗?
追答

onreadtstatechange 是跟ajax绑定的,并不是个可以正常调用的函数。

xhttp.onreadystatechange = (function(x, str) {
    return function() {
        /* Do stuff */
    }
})(xhttp, msg);

所以只能用closure来做把参数传进去。 而且一般情况下onreadystatechange是用来处理ajax的返回值的,并不是一个可以处理一般变量的函数。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式