下面的javascript片段是做什么的

时间:2014-12-13 09:20:07

标签: javascript

我在学习Javascript时会看到一些代码片段,我不确定,请问您这个结构究竟是什么,以及何时使用?

(function abc() 
{
     //action code here
})();

示例

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

非常感谢。

1 个答案:

答案 0 :(得分:1)

你能做的最好的就是阅读这篇文章:

JavaScript Module Pattern: In-Depth

Smalle引用:

  

匿名闭包

     

这是使一切成为可能的基本结构,而且实际上是JavaScript的最佳功能。我们将简单地创建一个匿名函数,并立即执行它。在函数内部运行的所有代码都存在于一个闭包中,它在我们的应用程序的整个生命周期中提供隐私和状态。

(function () {
    // ... all vars and functions are in this scope only
    // still maintains access to all globals
}());

但是真的要仔细阅读这篇文章并观察我们所拥有的内容,感谢其他人,他们为我们描述了JS模式......

因为更重要的部分是MODULE模式

  

模块导出

     

有时你不只是想使用全局变量,而是想要声明它们。我们可以通过使用匿名函数的返回值导出它们来轻松完成此操作。这样做将完成基本模块模式,所以这是一个完整的例子:

var MODULE = (function () {
    var my = {},
        privateVariable = 1;

    function privateMethod() {
        // ...
    }

    my.moduleProperty = 1;
    my.moduleMethod = function () {
        // ...
    };

    return my;
}());