【head first ajax】如何判断闭包函数?

smallpipe_coder smallpipe_coder 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
createRequest()存在于一个文件里面

function createRequest() {
try {
request = new XMLHttpRequest();
} catch (tryMS) {
try {
request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (otherMS) {
try {
request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (failed) {
request = null;
}
}
}
return request;
}

另一个文件中:

function showTab() {
var request = creatRequest();
/* 略 */
request.onreadystatechange = showAjax;
/* 略 */
}
function showAjax() {
if (request.readyState == 4) {
if (request.status == 200) {
document.getElementById("content").innerHTML = request.responseText;
}
}
}

我认为 showAjax中的函数是var request这个局部变量,因为是闭包函数;但是head first ajax 说 这个是createRequest()定义的全局变量。有满意答案 肯定结贴。。。
有一个参考:
head first javascript中 下面这个是闭包函数:

window.onload = function() {
var count = 0;
var message = "You clicked me ";
var div = document.getElementById("message");
var button = document.getElementById("clickme");
button.onclick = function() {
count++;
div.innerHTML = message + count + " times!";
};
};

onclick 与之前的onreadystatechange 形式上是一样的,分别为button和request的属性值。。为什么一个是闭包,一个不是??
...全文

相关推荐

评论 8
收藏 已收藏
分享
返回顶部
smallpipe_coder
JavaScript 87,984 成员 224,681 内容