Ad

Self-invoking Function Inside DOMContentLoaded Event - Sense?

- 1 answer

Since I want my JS to run only after DOMContentLoaded I do it like this:

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

Since I want to limit scope level and it's in general a good practice to enclose code into anonymous function, I do it like this:

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

So, does it make sense to write code like this?

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

Answer

The point of an Immediately Invoked Functional Expression is to provide namespacing to avoid polluting the global scope. Since document is already a global variable it makes sense to put it outside like you did which will allow you to write more IIFEs in the same DOMContentLoaded callback like this:

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

    })();

   // IIFE 2
   (function() {

   })();

   ...

});
Ad
source: stackoverflow.com
Ad