JSFiddle - React, Tailwind, and code Playground

JavaScript

var Test = (function(){
    var priv = "Banana";
    var public = "Orange";
    var pubobj = {name:"Cheese"};
    
    function constructor(){
        this.public = public;
        this.pubobj = pubobj;
        
        this.instance = {name:"Grape"};
        
        this.instanceMethod = function(){
            return priv;
        };
    };

    constructor.prototype.private = function(){
        return priv;
    };            

    return constructor;
        
})();

var myTest = new Test();

console.log(myTest.public);
console.log(myTest.priv);
console.log(myTest.private());

var myTest2 = new Test();

console.log(myTest.public === myTest2.public);
console.log(myTest.private === myTest2.private);

myTest.public = "cheese";
console.log(myTest.public, myTest2.public);

myTest.pubobj.name = "Melon";
console.log(myTest.pubobj, myTest2.pubobj);

myTest.instance.name = "Raspberry";
console.log(myTest.instance, myTest2.instance);

console.log(myTest.instanceMethod === myTest2.instanceMethod);