Let's consider re-factoring the two functions that we looked at previously and putting them together in a more specialized package (class or module) called, CalculationHandler
, as shown below:
function CalculationHandler(){ CalculationHandler.result = null; } CalculationHandler.doAddition = function(num1, num2){ return num1 + num2; }; CalculationHandler.doSubtraction = function(num1, num2){ if(num1 > num2){ CalculationHandler.result = num1 - num2; }else{ CalculationHandler.result = num2 - num1; } return CalculationHandler.result; }; console.log(CalculationHandler.doAddition(3,2)); // displays 5 console.log(CalculationHandler.doSubtraction(3,2)); // displays 1
As you can see in this "module" (and I use the term loosely here; you will see why in later chapters), I am using a function object and adding properties (methods) to this object. These methods do specialized tasks related to the overall functionality of the object (module), such as addition and subtraction.
Note
A note about our module here
If you are more experienced in JavaScript programming, you are probably thinking that the way I have created this module is probably not the best way to create a real module in JavaScript, and you are right! But for now, the big idea here is that any piece of code that does a specialized task can be tagged as a module, for the most part.
However, there are certainly better ways to write more robust and extensible modules in JavaScript. For instance, creating a module can be accomplished much better by using the Module Design Pattern, which we will get to explore a lot further in later chapters of this book.