DOMContentLoaded事件中的自调用函数-有意义吗?

时间:2019-03-09 11:00:18

标签: javascript scope

因为我希望我的JS仅在DOMContentLoaded之后运行,所以它是这样的:

document.addEventListener('DOMContentLoaded', function() {
    //
});

由于我想限制作用域级别,并且将代码包含在匿名函数中通常是一个好习惯,所以我这样做是这样的:

(function() {
    //
})();

那么,编写这样的代码有意义吗?

document.addEventListener('DOMContentLoaded', function() {
    (function() {
        //
    })();
});

1 个答案:

答案 0 :(得分:1)

立即调用的功能表达式的重点是提供命名空间以避免污染全局范围。由于document已经是一个全局变量,因此像您所做的那样将其放置在外部很有意义,这将使您可以在同一DOMContentLoaded回调中编写更多IIFE,如下所示:

document.addEventListener('DOMContentLoaded', function() {
    // IIFE 1
    (function() {

    })();

   // IIFE 2
   (function() {

   })();

   ...

});