JSFiddle - React, Tailwind, and code Playground
by ariehg
JavaScript
;
(function() {
function createOverride(arr) {
return function() {
var i, l;
for (i = 0, l = arr.length; i < l; i++) {
if (arr[i].length == arguments.length) return (arr[i].apply(this, arguments));
}
return this;
}
}
Object.override = function(obj, name, fn) {
var args = [];
switch (typeOf(fn)) {
case 'function':
args = [fn];
break;
default:
args = fn;
}
if (name in obj.prototype) args.unshift(obj[name]);
obj[name] = createOverride(args);
};
})();
function a(){}
a.prototype.a = function(a){console.log(a);};
Object.override(a,'a',function(a,b){
console.log(a,b);
});
var b = new a;
b.a('a');
b.a('b','a');