(function() 在这个特定的代码段中是什么意思
What does (function() mean in this particular code segment?
我正在 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. )();
虽然我设法理解了代码并使其正常工作,但直到我删除了顶部的"(function() {"部分和此代码段末尾的所有结尾大括号。问题是我不明白"(function{"的目的,FF似乎也不明白(它不承认这个段是Javascript,直到我去掉了"(function{"部分。有谁知道这段代码的目的?我知道我也在某处见过它,这次我想知道它到底是什么意思。
提前感谢您的帮助。
这个:
(function() {
...
})();
创建一个函数并立即调用它,并具有自己的作用域。 一个常见的术语是IIFE - "立即调用的函数表达式"。
在这种情况下,您无意中合并了最后两行,因此提及bwalton
的单行注释通过删除尾随) ();
破坏了代码。
如果没有尾随()
则有一个函数引用,但不会调用它。
要修复代码副本,您需要做的就是在 bwalton 5/11/11.
之后添加回车符。
(function() { /* code here */ })();
创建一个匿名函数并就地执行它。目的之一是创建本地范围。
你看到吗 ()();
这是附加到某个值的调用括号。现在。
(function(){});
是一个函数,一个封闭在括号下的匿名函数。 把它全部加起来。
(function(){}) ();
对括在括号中的函数的调用。了不起!!
如上所述,这是一个闭包,请参阅链接以获取有关闭包的更多信息 http://jibbering.com/faq/notes/closures/
相关文章:
- 为什么在以下代码段中无法访问中的变量值
- 将 JSP 变量输出到 JavaScript 代码段中
- 无法访问字段'通过aspx页面上的javascript函数传递来自代码隐藏中函数调用的客户端id的s值(页面加载
- 为什么这个 js 代码段中的“=”语法不正确
- 在同一命名空间中保留两个独立的javascript文件/代码段
- HTML 符号代码在输入字段中无法正常工作
- 访问代码隐藏中动态创建的隐藏字段值
- JS 在不满足条件时在 if 语句中运行代码段
- 为什么 $(window).resize() 没有在此代码段中触发或返回错误
- 如何阻止 PHP 页面中的 JavaScript 代码段在屏幕分辨率较小的设备上加载
- 如何从关键字搜索中返回最短的代码段
- 无法将谷歌趋势中的 js 代码段添加到 HTML 页面中
- 如何防止输入字段中出现单击事件角度代码
- 代码点火器中日期的表单输入字段
- 无法解释此<头>代码段中的 IE 条件
- (function() 在这个特定的代码段中是什么意思
- 如何访问同一php文件中php代码段中的html内容
- 为什么这个JS代码段中的上下文会发生变化
- 此模块代码段中出了什么问题
- 此 HTML 代码段中的 onclick 函数在哪里定义