Implementing module augmentation

Imagine that we have a module called ModuleA and, as a developer, you want to add more functionality to this module. However, for some reason, you decide to implement this new functionality in a completely separate module and then dynamically augment the original module with all the data and capabilities of this new module. You can achieve this as shown here:

var ModuleA = (function(coreModule){
    var someData = "this is some data to be used later";
    coreModule.someMethod = function(){
        return someData;
    };

    return coreModule;
})(ModuleA);

As you can see, we are again using the module pattern here, as the intent is to add the new functionality in a modular fashion.

In this IIFE, a reference to coreModule object is returned.. ...

Get Modular Programming with JavaScript now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.