Messing around with closures
Getting to understand closures by implementing a simple example (though quite verbose way of creating operator functions)
by Marcus Baptiste
HTML
<p id="output">
</p>
JavaScript
var oper_func_maker = function(oper) {
var offset = 5;
if(oper === "+") {
return function(a,b) {
return offset + a + b;
};
} else if (oper === "-") {
return function(a,b) {
return offset + (a - b);
};
}
};
var add_func = oper_func_maker("+");
var result = add_func(2,3);
output.innerHTML += result + "<br>";
var sub_func = oper_func_maker("-");
var result2 = sub_func(5,5);
output.innerHTML += result2 + "<br>";