JSFiddle - React, Tailwind, and code Playground

JavaScript

function blah() { 
    var me = this;
    
    var msg = "hello world";
    
    this.Message = function(newMsg) {
        if (newMsg) {
            msg = newMsg;
        } else {
            return msg;
        }
    }
}

function deepCopy(o) {
    
    if(o == null || typeof(o) != 'object') {
        return o;
    }

    var newObj = new o.constructor();

    for(var key in o) {
        if(typeof(o) != 'function') continue;
        newObj[key] = deepCopy(o[key]);
    }

    return newObj;  
}

var b = new blah();

document.write(b.Message() + "<br />");

b.Message("goodbye");

document.write(b.Message() + "<br />");

var c = deepCopy(b);

document.write(c.Message() + "<br />");