Javascript Function Overloading
use closures to create basic function overloading with js
by nickadeemus2002
JavaScript
function addMethod(obj, name, fn){
var old = obj[name];
obj[name] = function(){
if(fn.length === arguments.length){
return fn.apply(this, arguments);
}else if(typeof old === 'function'){
return old.apply(this, arguments);
}
};
}
var myObj = {}
addMethod(myObj, 'objMethod', function m1(){console.log('no arguments');});
addMethod(myObj, 'objMethod', function m2(a){console.log('1 argument');});
addMethod(myObj, 'objMethod', function m3(a,b){console.log('2 arguments');});
var a,b;
myObj.objMethod(a);
console.log(myObj);