JSFiddle - React, Tailwind, and code Playground

by sandro_paganotti

JavaScript

Function.prototype.proxyEnabled = function(){
    var original = this;
    return function(){
        var args = Array.prototype.slice.call(arguments);
        var fnToCall =  this[original.name + this.proxy];        
        return (typeof fnToCall === 'function' ? fnToCall : original).apply(this, args);
    };
};

Obj = function(){};
Obj.prototype = {
    fn1: function fn1(){ return 'hello!'; }.proxyEnabled(),
    fn1else: function(){ return 'hi!!'; }
}

var obj = new Obj();

console.log(obj.fn1());
obj.proxy = 'else';
console.log(obj.fn1());