04 - Module Pattern (SJC)

by Diya_Khan

HTML

<div id="output"></div>

JavaScript

//Class declaration
//Advantages:no "this" issues, encapsulation, simpler
//Advantages:no overriding,functions are created on every instance in memory

var Calculator = function(elmId) {

    var element = document.getElementById(elmId),
        addValues = function(x, y) {
            return x + y;
        },
        add=function(x, y) {
            element.innerHTML = addValues(x, y);
        };
    return {
        //encapsulation
        add:add 
    };
};

var calc = new Calculator('output');
calc.add(4, 4);