这个js函数如何工作?标题太小,无法解释

时间:2010-10-14 12:21:03

标签: javascript jquery

我一直在挖掘jquery以了解它是如何工作的,我发现它使用的是我之前从未见过的构造。以下代码似乎在浏览器加载时执行,它几乎就像一个调用自身的函数。我搜索了这个功能的文档,但不确定它的名称。有人能告诉我原理,所以我可以谷歌进一步了解这个吗?

(function test() {
    alert('test');
})();

2 个答案:

答案 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