您是否应该将 IIFE 与 RequireJS 一起使用

Kou*_*sha 5 javascript requirejs iife

似乎是,如果您使用 RequireJS 并且使用defineand require,那么也没有使用 IIFE 的意义,因为每个模块都已经包含在define/ 中require。是这样吗?

换句话说,这段代码是否

define(['app'], function(app)
{
    app.run();
});
Run Code Online (Sandbox Code Playgroud)

有什么区别/优势

(function() { 

    define(['app'], function(app) 
    {
        app.run();
    });

})();
Run Code Online (Sandbox Code Playgroud)

ist*_*tos 1

无论如何,该define()函数都在全局范围内,因此在 IIFE 内调用它根本没有什么区别,而且有点多余。

如果您将代码放在回调之外,情况会有所不同,define但您不应该这样做,因为每个文件都应该代表一个封装的模块。

我唯一能想到将 IIFE 与 RequireJS 一起使用的时候可能是在require.config()初始化之前通过调用来配置应用程序时;但即便如此,如果我只是调用require.config()并且外部没有任何代码,我仍然不会使用 IIFE。

在此示例中,不需要使用 IIFE:https://github.com/vasilionjea/bower-requirejs-starter/blob/master/local/js/main.js

我希望这能回答你的问题。