我一直在挖掘jquery以了解它是如何工作的,我发现它使用的是我之前从未见过的构造。以下代码似乎在浏览器加载时执行,它几乎就像一个调用自身的函数。我搜索了这个功能的文档,但不确定它的名称。有人能告诉我原理,所以我可以谷歌进一步了解这个吗?
(function test() {
alert('test');
})();
答案 0 :(得分:6)
这就是它的本身,一个自我调用的匿名函数,该范围内的变量:
(function test() {
//here
})();
除非你暴露它们,否则不会在外面看到。如果您想了解有关使用和实际示例的更多详细信息,请从this question开始。
答案 1 :(得分:3)
这是一个自动执行的功能。
它是一个立即调用的函数表达式。
用于创建本地范围。如果你有一个需要大量新变量的代码片段,并且你只需要运行一次该代码,那么用这个函数封装代码片段是个好主意(这样代码片段中的变量不会污染代码片段)全局命名空间)。
(function() {
// all variables and functions declared here are not visible
// outside of this function
})();
但是,在您的代码中,该函数不是匿名的 - 您将其称为“test”,因此它是一个命名函数表达式。最好不要为函数表达式定义名称(因为Internet Explorer中存在与此问题相关的错误: http://github.com/kangax/nfe