javascript – 你应该在RequireJS上使用IIFE吗?

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

换句话说,这个代码

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

有任何区别/优势

(function() { 

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

})();

解决方法:

无论如何,define()函数都在Global范围内,因此在IIFE中调用它根本没有任何区别,而且它有点多余.

如果将代码置于define回调之外,则会有所不同,但您不应该这样做,因为每个文件应代表一个封装模块.

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

在这个例子中,没有必要使用IIFE:https://github.com/vasilionjea/bower-requirejs-starter/blob/master/local/js/main.js

我希望能回答你的问题.

上一篇:javascript – 为什么不能将中缀增量运算符()用于IIFE?


下一篇:python爬虫--selenium模块