JSFiddle - React, Tailwind, and code Playground
JavaScript
// public part
var publicVar = 111;
var publicFunc = function(value) { alert(value); };
var publicObject = {
// no functions whatsoever
};
// closure part
(function(pubObj){
// private variables and functions
var closureVar = 222;
var closureFunc = function(value){
// call public func
publicFunc(value);
// alert private variable
alert(closureVar);
};
// add functionality to public object that can now call private functionality
pubObj.alertValues = closureFunc;
// mind the missing "var"
anotherPublic = 333;
})(publicObject);
// alert 111, alert 222
publicObject.alertValues(publicVar);
// try to access varaibles
alert(publicVar); // 111
alert(anotherPublic); // 333
alert(typeof(closureVar)); // undefined