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. There is, however, one important thing to keep in mind here. We are passing ModuleA
as a parameter to our anonymous container function. Also, the property someMethod
is being added to the passed-in coreModule...