ant*_*twp 2 javascript ajax mozilla
我正在https://developer.mozilla.org/en/AJAX/Getting_Started上从Mozilla网站学习Ajax ,我面对这段代码:
(function () {
var httpRequest;
document.getElementById("ajaxButton").onclick = function () {
makeRequest('test.html');
};
function makeRequest(url) {
if (window.XMLHttpRequest) { // Mozilla, Safari, ...
httpRequest = new XMLHttpRequest();
} else if (window.ActiveXObject) { // IE
try {
httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!httpRequest) {
alert('Giving up :( Cannot create an XMLHTTP instance');
return false;
}
httpRequest.onreadystatechange = alertContents;
httpRequest.open('GET', url);
httpRequest.send();
}
function alertContents() {
if (httpRequest.readyState === 4) {
if (httpRequest.status === 200) {
alert(httpRequest.responseText);
} else {
alert('There was a problem with the request.');
}
}
}
} //missing closing bracket added by bwalton 5/11/11. )();
Run Code Online (Sandbox Code Playgroud)
虽然我设法理解代码并使其正常工作,但直到我剥离了顶部的"(function(){"部分以及此代码段末尾的所有结束括号.事情是我没有理解"(函数{"的目的,似乎也没有FF.(在我剥离"(函数{"部分之前,它不会将此段识别为Javascript.有人知道这段代码的目的吗?我知道我也曾在某个地方看过它,而这次我想确切地知道它意味着什么.
在此先感谢您的帮助.
这个:
(function() {
...
})();
Run Code Online (Sandbox Code Playgroud)
创建一个函数并立即调用它,具有自己的范围.一个常见的术语是IIFE - "立即调用函数表达式".
在这种情况下,您无意中合并了最后两行,因此单行注释提示bwalton通过删除尾部来破坏代码) ();.
没有尾随,() 你有一个函数引用,但它没有被调用.
您需要做的就是修复代码副本,然后添加回车符bwalton 5/11/11..
| 归档时间: |
|
| 查看次数: |
207 次 |
| 最近记录: |