Before ES6, JavaScript had never supported modules natively. Developers used other techniques and third-party libraries to implement modules in JavaScript. Using Immediately-Invoked Function Expression (IIFE), Asynchronous Module Definition (AMD), CommonJS, and Universal Module Definition (UMD) are various popular ways of implementing modules in ES5. As these ways were not native to JavaScript, they had several problems. Let's take an overview of each of these old ways of implementing modules.
Implementing modules – the old way
Immediately-Invoked Function Expression (IIFE)
We've briefly discussed IIFE functions in earlier chapters. It is basically an anonymous function that is executed automatically...