下面的 javascript 代码片段在做什么

问题描述 投票:0回答:1

我在学习 Javascript 时看到如下一些代码片段,我对此不太确定,您能告诉我这个结构到底是做什么的,以及何时使用吗?

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

示例

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

非常感谢。

javascript iife
1个回答
1
投票

您能做的最好的事情就是阅读这篇文章:

JavaScript 模块模式:深入

小引用:

匿名关闭

这是使这一切成为可能的基本构造,并且确实是 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;
}());
© www.soinside.com 2019 - 2024. All rights reserved.