JSFiddle - React, Tailwind, and code Playground
by krasimir
JavaScript
var GeneralClass = function(a, b, c) {
console.log(a, b, c);
}
var GeneralClassExtender = function() {
var defaults = [];
for(var i=0; i<arguments.length; i++) {
defaults.push(arguments[i]);
}
return function() {
var argsToApply = [];
for(var i=0, usedArguments=0; i<defaults.length; i++) {
if(defaults[i] === null) {
argsToApply.push(arguments[usedArguments]);
usedArguments += 1;
} else {
argsToApply.push(defaults[i]);
}
}
return GeneralClass.apply({}, argsToApply);
}
}
var SpecificClass = GeneralClassExtender(1, null, 3);
var AnotherClass = GeneralClassExtender(null, 99, null);
var obj1 = new SpecificClass(10);
var obj2 = new AnotherClass(6, 20);