JSFiddle - React, Tailwind, and code Playground

JavaScript

// Build-Reveal

var person={
	create:function(_name){ // 'constructor'
                            //  prevents direct instantiation 
                            //  allows creation on demand
                            //  but no inheritance
		return (function() {
			
			var name=_name||"defaultname";	// private variable
			
			// [some private functions]
			
			function getName(){
				return name;
			}
			
			function setName(_name){
				name=_name;
			}
			
			return {	// revealed functions
				getName:getName,	
				setName:setName
			}
		})();
	}
}

// … no (instantiated) person so far …

var p=person.create(); // name will be set to 'defaultname'
p.setName("adam");		// and overwritten
var p2=person.create("eva"); // or provide 'constructor parameters'
alert(p.getName()+":"+p2.getName());