JSFiddle - React, Tailwind, and code Playground

HTML

<ul id="log"></ul>

JavaScript

function log(msg){
    $("#log").append("<li>"+msg+"</li>");
}

if (typeof Object.beget !== 'function') {
    Object.beget = function(o) {
        var F = function() {};
        F.prototype = o;
        return new F();
    };
}

o1 = {};

Object.defineProperty(o1,"a",{
    set : function(val){ this.val = val + 1; },
    get : function(){ return this.val; }
});

o1.a = 3;                   
                      
o2 = Object.beget(o1);

log(o1.a);

o2.a = 0;

log(o2.a);