this + prototypes + module.export
HTML
<div id="display"></div>
CSS
.comment {
color: silver;
}
JavaScript
var display = document.getElementById("display");
var namespace = (function () {
// private methods
var addQuarter = function (f) {
return f + 0.25;
};
// public constructor
var addOne = function (a) {
//this.a = a + 1;
//this.result = this.a;
this.result = a + 1;
return this;
};
// public prototypes of addOne
addOne.prototype = {
addMore: function(d) {
//this.d = d;
//this.result = this.result + this.d;
this.result = this.result + d;
return this;
},
multiplyMore: function(e) {
//this.e = e;
//this.result = this.result * this.e;
//this.result = addQuarter(this.result);
this.result = addQuarter(this.result * e);
return this;
},
displayResult: function() {
return this.result;
},
addOne: addOne
};
// return block
return {
addOne: addOne
};
})();
module.exports = namespace;
display.innerHTML += namespace.addOne(3).result + " <span class='comment'>// 3+1</span>";
display.innerHTML += "<br>";
display.innerHTML += new namespace.addOne(3).addMore(5).multiplyMore(2).result + " <span class='comment'>// 3+1+5*2(+0.25)</span>";
display.innerHTML += "<br>";
display.innerHTML += new namespace.addOne(3).multiplyMore(2).addMore(5).displayResult() + " <span class='comment'>// 3+1*2(+0.25)+5</span>";
display.innerHTML += "<br>";
display.innerHTML += new namespace.addOne(3).displayResult() + " <span class='comment'>// 3+1</span>";
display.innerHTML += "<br>";
display.innerHTML += new namespace.addOne(3).addOne(4).displayResult() + " <span class='comment'>// 4+1</span>";
display.innerHTML += "<br>";
console.log(namespace.addOne(3).result + " // 3+1");
console.log(new namespace.addOne(3).addMore(5).multiplyMore(2).result + " // 3+1+5*2(+0.25)");
console.log(new...