JSFiddle - React, Tailwind, and code Playground

by Cwalkdawg

JavaScript

var BaseObject = function() {
    this.prototype.initObj = {};
    this.prototype.defaults = {};
    this.prototype.init = function (objList) {
        var item;
        for (item in objList) {
            if (objList.hasOwnProperty(item)) {
                this[item] = objList[item];
            }
        }
    };

    this.prototype.setDefaults = function (defaults) {
        var item;

        this.init.call(this, this.initObj);

        for (item in defaults) {
            if (defaults.hasOwnProperty(item) && !this.hasOwnProperty(item)) {
                this[item] = defaults[item]
            }
        }
    };
};

var ConcreteObject = function(){
    var defaults = {
        message: "Hello",
        recipient: "world!",
        subject: "foo",
        bar: "baz"
    };
    
    this.setDefaults.call(this, defaults);
};
ConcreteObject.prototype = new BaseObject();
ConcreteObject.constructor = ConcreteObject;

console.log(new BaseObject());