JSFiddle - React, Tailwind, and code Playground

by lbstr

JavaScript

var addMethod = function(object, name, fn) {
    var old = object[name];
    object[name] = function(){
        if (fn.length === arguments.length) {
            return fn.apply(this, arguments);
        }
        else if (typeof old === "function") {
            return old.apply(this, arguments);
        }
    };
};

var o = {};

addMethod(o, "foo", function(){
    console.log('no arguments');
});

addMethod(o, "foo", function(arg){
    console.log('one argument: ' + arg);
});

addMethod(o, "foo", function(a, b){
    console.log('two arguments: ' + a + ' and ' + b);
});

o.foo();
o.foo(42);
o.foo("cake", "candy");